支付宝小程序唤起支付
目录
my.tradePay
alipay.trade.create
公共请求参数
请求参数
alipay.system.oauth.token
公共请求参数
请求参数
my.getAuthCode
支付是小程序生态中的重要一环,但支付宝给出的文档确不够详细,大大增加了小程序的开发难度,本文旨在说明支付宝小程序唤起支付的详细过程,用以降低开发文档的阅读难度。
支付需要配置能力列表中的小程序支付能力和获取会员基础信息的能力。
my.tradePay
根据小程序API文档给出的说明,my.tradePay是用于发起支付的 API,实例代码如下:
// .js
my.tradePay({// 调用统一收单交易创建接口(alipay.trade.create),获得返回字段支付宝交易号trade_notradeNO: '201711152100110410533667792',success: (res) => {my.alert({content: JSON.stringify(res),});},fail: (res) => {my.alert({content: JSON.stringify(res),});}
});
但其中tradeNO参数需要调用统一收单交易创建接口(alipay.trade.create)来获得,需要注意:
- alipay.trade.create 接口在小程序场景中 buyer_id 参数必填,且入参的 buyer_id(用户 user_id,2088 开头)必须和前端唤起支付的支付宝账号一致。
alipay.trade.create
所以调用alipay.trade.create接口需要以下参数:
公共请求参数
参数 | 必填 | 描述 | 示例值 |
---|---|---|---|
app_id | 是 | 支付宝分配给开发者的应用ID | 2014072300007148 |
method | 是 | 接口名称 | alipay.trade.create |
format | 否 | 仅支持JSON | JSON |
charset | 是 | 请求使用的编码格式,如utf-8,gbk,gb2312等 | utf-8 |
sign_type | 是 | 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 | RSA2 |
sign | 是 | 商户请求参数的签名串,详见签名 | 详见示例 |
timestamp | 是 | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" | 2014-07-24 03:07:50 |
version | 是 | 调用的接口版本,固定为:1.0 | 1.0 |
notify_url | 否 | 支付宝服务器主动通知商户服务器里指定的页面http/https路径。 | http://api.test.alipay.net/atinterface/receive_notify.htm |
app_auth_token | 否 | 详见应用授权概述 | |
biz_content | 是 | 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档 |
请求参数
参数 | 必填 | 描述 | 示例值 |
---|---|---|---|
out_trade_no | 必选 |
商户订单号。 由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。 |
20150320010101001 |
total_amount | 必选 |
订单总金额。 单位为元,精确到小数点后两位,取值范围:[0.01,100000000] 。 |
88.88 |
subject | 必选 |
订单标题。 注意:不可使用特殊字符,如 /,=,& 等。 |
Iphone6 16G |
buyer_id | 特殊可选 |
买家支付宝用户ID。 2088开头的16位纯数字,小程序场景下获取用户ID请参考:用户授权; 其它场景下获取用户ID请参考:网页授权获取用户信息; 注:交易的买家与卖家不能相同。 |
2088102146225135 |
timeout_express | 可选 |
订单相对超时时间。从交易创建时间开始计算。 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。 当面付场景默认值为3h。 注:time_expire和timeout_express两者只需传入一个或者都不传,如果两者都传,优先使用time_expire。 |
90m |
sign由上面的参数与私钥计算而来,详情参见签名。
user_id即用户ID,需要通过alipay.system.oauth.token接口获得。
alipay.system.oauth.token
调用接口需要以下参数:
公共请求参数
参数 | 必填 | 描述 | 示例值 |
---|---|---|---|
app_id | 是 | 支付宝分配给开发者的应用ID | 2014072300007148 |
method | 是 | 接口名称 | alipay.system.oauth.token |
format | 否 | 仅支持JSON | JSON |
charset | 是 | 请求使用的编码格式,如utf-8,gbk,gb2312等 | utf-8 |
sign_type | 是 | 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 | RSA2 |
sign | 是 | 商户请求参数的签名串,详见签名 | 详见示例 |
timestamp | 是 | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" | 2014-07-24 03:07:50 |
version | 是 | 调用的接口版本,固定为:1.0 | 1.0 |
app_auth_token | 否 | 详见应用授权概述 |
请求参数
参数 | 必填 | 描述 | 示例值 |
---|---|---|---|
grant_type | 必选 |
授权方式。支持: 1.authorization_code,表示换取使用用户授权码code换取授权令牌access_token。 2.refresh_token,表示使用refresh_token刷新获取新授权令牌。 |
authorization_code |
code | 可选 | 授权码,用户对应用授权后得到。本参数在 grant_type 为 authorization_code 时必填;为 refresh_token 时不填。 | 4b203fe6c11548bcabd8da5bb087a83b |
refresh_token | 可选 | 刷新令牌,上次换取访问令牌时得到。本参数在 grant_type 为 authorization_code 时不填;为 refresh_token 时必填,且该值来源于此接口的返回值 app_refresh_token(即至少需要通过 grant_type=authorization_code 调用此接口一次才能获取)。 | 201208134b203fe6c11548bcabd8da5bb087a83b |
需要注意的是,auth_code是用户授权码,需要通过my.getAuthCodeAPI获取。
my.getAuthCode
实例如下:
my.getAuthCode({scopes: 'auth_user',success: (res) => {my.alert({content: res.authCode,});},
});
综上所述,支付宝小程序唤起支付以下步骤进行:
1、调用my.getAuthCodeAPI获取用户授权码authCode。
2、调用alipay.system.oauth.token接口,传入authCode以及其他必选参数获得user_id。
3、调用alipay.trade.create接口,传入user_id及其他必选参数获取tradeNO。
4、调用my.tradePayAPI发起支付,从而唤起支付宝支付功能。
支付宝小程序唤起支付相关推荐
- 支付宝小程序唤起独立签约
目录 获取签约字符串 唤起支付宝周期扣款签约页面 支付宝小程序唤起独立签约,需要通过alipay.user.agreement.page.sign接口获取签约字符串signStr,然后调用my.pay ...
- 支付宝小程序唤起签约并支付(周期扣款)
目录 获取支付参数拼接成的字符串 支付宝小程序内唤起签约并支付页面 获取支付参数拼接成的字符串 调用alipay.trade.app.pay接口,获取orderStr,具体参数如下: 公共请求参数 参 ...
- 支付宝小程序(支付)
1.首先要注册企业账号,并创建小程序,在支付宝开发工具中与项目做关联 2.配置环境https://docs.alipay.com/mini/introduce/pay根据步骤做小程序开发准备并签约小程 ...
- 支付宝小程序沙箱支付提示(系统繁忙,请稍后再试)
1.由于工程编码与发送时编码不一致 解决:使用urldecode工具对 formStr 解码,观察有无乱码 2.小程序沙箱环境 可以获取到accessToken+openId 但无法获取到会员 ...
- 支付宝小程序手机相册上传多个图片踩坑
一单张图片存储之后集中使用(还待修改仅供参考) 注意 : img图片必须使用支付宝小程序官方文档推荐按钮才能渲染 <view class="page-section-demo btn& ...
- uniApp APP跳转支付宝小程序,uniapp唤起支付小程序
ios上支付宝的自定义协议是alipay Android上支付宝的自定义协议是alipays #ifdef APP-PLUSlet alipayUrl = null;if (uni.getSystem ...
- java对接支付宝小程序支付
今天晚上12点部署生产项目,又是个不眠夜. 之前整的好多东西都忘光了,还是记录下来吧. 跟对接支付宝支付差不多,地址:小程序支付能力介绍 | 小程序 开通流程: 1.先要去支付宝开放平台,创建小程序. ...
- 支付宝小程序支付(统一收单交易创建接口)
##支付宝小程序支付(统一收单交易创建接口).自己刚刚花的一点时间整好了.所以现在记录一下.以防老年痴呆. 1.先设置好小程序的应用公钥(我是一家设置好了的) 2.保存自己设置的公钥和私钥 3.把刚刚 ...
- 支付宝支付开发实践总结-Java-支付宝当面付-支付宝小程序-二维码生成-支付宝退款-APP调起支付宝支付
虽然目前相对较火的支付方式是微信支付,但是本人更喜欢支付宝支付,有积分拿,还可以部分提现免手续费,每月还有信用卡还款免手续费额度,捐步数,蚂蚁森林等等,扯远了,总之,对我来说,微信用于沟通,支付宝是支 ...
- 微信小程序微信公众号支付宝小程序H5(获取信息用户信息,支付,分享,人脸识别)
文章目录 一.微信小程序 1. 获取信息用户信息 2.支付 3.分享 4. 腾讯云小程序人脸核身 二.微信公众号 1.获取信息用户信息 2.支付 3. 分享(普通分享) 4.分享(vue单页面 配置分 ...
最新文章
- 阿里程序员回老家被哥们问工作,回答在阿里,哥们却吐槽:破IT就破IT,还阿里巴巴!网友:京东就是送快递的,美团就是送外卖的!...
- hybird 跨平台移动app开发
- Java程序员必须知道的Java10特性
- 插值方法——Lagrange插值公式
- java shiro security_安全框架Shiro和SpringSecurity的比较
- 《信息安全系统设计基础》实验一 开发环境的熟悉
- 摄影平铺海报psd模板|简单搭建层次场景海报
- 腾讯云Centos上部署Mongodb
- K8S 1.23 metrics-server及cadvisor 杂记
- 计算机组成知识教案,计算机系统的基本组成 教案_
- 微信小程序开发者工具打不开的问题
- ps中怎么导出tif_PS中图像常用的2种存储格式——TIFF/JPEG
- JVM基本原理,简明扼要,通俗易懂
- 程序员的算法趣题Q50: 完美洗牌
- 微信小程序前端各种酷炫的动画特效实例,这一篇就够了,复制开箱就用,赶快收藏好了
- 国内外大厂扑向AR-HUD,但抵达“智能汽车终局”仍隔数层纱
- 俄勒冈健康与科学大学计算机,俄勒冈健康与科学大学有何优势
- iOS调用QQ客户端,发起临时会话
- SUS战队专访 | 关于赛题,能说的都在这里了
- SMETA验厂辅导,用工场所须在审核前提供最新和精确的预审核和自我评估信息
热门文章
- 草莓派Raspberry3B
- ERD-ONLINE 免费在线数据库建模工具
- 2022保密教育线上培训考试参考答案 05
- ICA算法的数学原理
- excel跨多个表格求和_收藏学习!一个Excel函数搞定进销存报表,你还在花钱买软件?...
- 【定制开发】【M3】基于Python+pygame实现的人机AI对战五子棋游戏(保姆级入门讲解)
- 省一级计算机操作题,江苏省计算机一级操作题大全
- 高等学校计算机一级考试题库,全国计算机一级考试题库「附答案」
- MIMO系统信号检测之MMSE推论
- 吴恩达机器学习和深度学习视频和笔记