在上一章讲解了如何获取用户信息授权之后,接下来就是进行小程序支付。
本期就来介绍如何实现支付宝小程序支付。
PS:访问前准备请参考:访问准备;访问指南请参考:访问指南~
获取小程序支付权限
获取权限分为三个步骤:开户支付、绑定小程序账号、绑定小程序产品。
开户及付款
签订合同需要支付实体账户,账户必须是企业或者个体工商户。
您可以通过签约快车直接开通
与小程序账号绑定
激活成功后,进入小程序管理页面关联小程序,将开发的小程序与账号进行关联。
⚠ 注意:请绑定你开发的小程序,若不绑定,后续将无法支付成功。
小程序绑定产品
在小程序详情界面,进入【产品绑定】,绑定支付产品。
操作请参考[如何在应用中实现产品绑定]:
签字过程中可能遇到的问题也罗列在这里,供大家参考:
Tips:如果你的账号不满足要求,也可以在沙盒环境中进行测试,可以参考我之前写的这篇文章~
支付宝沙盒超详细教程+避雷经验,看完这篇文章就懂
付款呼叫总体流程
获取到权限之后我们就可以进行接口调用了,主要步骤如下:
步骤1:获取用户的授权信息
目的:此步骤是获取用户的()
注:都可以,新旧账号获取到的信息可能会不一样,我的旧账号获取到的,新账号获取到的,具体以自己账号实际情况为准~
对此内容感兴趣的朋友也可以看看[和的区别]
方式一:通过用户授权获取(用户端弹窗)
大家可以参考我之前写的获取用户信息的步骤,下面简单总结一下:
方式二:通过静默授权获取(用户侧无弹窗)
静默授权和用户授权都是使用my.方法,但是参数不一样,获取的信息唯一就是uid(),调用步骤为:
代码示例
Page({ getAuthCode() { my.getAuthCode({ scopes: 'auth_base',//静默授权 success: res => { const authCode = res.authCode; fail: err => { console.log('my.getAuthCode 调用失败', err) } }); } })
关于授权的问题我在上一篇文章中已经讲了很多了,这次再补充两个关于静默授权的问题:
第二步:发送订单信息到服务器
获取到用户信息之后,我们可以将订单信息和用户信息打包在一起通过my.send()发送回服务器。
//.js页面 Page({ pay(){ my.request({ url: '商家服务端地址',//须加httpRequest域白名单 method: 'POST', data: {//data里的key、value是开发者自定义的 from: '支付宝', order: 'XXXXX',//订单信息 }, dataType: 'json', success: function(res) { my.alert({content: 'success'}); }, fail: function(res) { my.alert({content: 'fail'}); }, complete: function(res) { my.hideLoading(); my.alert({content: 'complete'}); } }); } });
如果在本地测试的话,记得在IDE的[详细信息]中勾选下面两项检查,否则IDE会验证域名的合法性。
下面列举一下my.call过程中常见的一些问题:
步骤3:在服务器上创建支付订单
目的:获取(支付宝交易号)
在接收到前端发来的订单信息之后,需要将信息传入..接口进行获取。
您可以直接参考服务器代码:[..代码示例]
下面简要列出必须传递给后端的几个参数:
如果获取的值是
如果获取的值是
后端接口调用成功后可获取参数:
服务器接口错误常见问题如下:
步骤 4:调用付款
前端获取到之后,我们就可以通过my.(发起支付)方法在小程序上调出收银员了。
// .js my.tradePay({ // 传入支付宝交易号trade_no tradeNO: '201711152100110410533667792', success: (res) => { my.alert({ content: JSON.stringify(res), }); }, fail: (res) => { my.alert({ content: JSON.stringify(res), }); } });
如果你在IDE上测试,需要使用支付宝扫描二维码支付:
真机测试可直接呼叫收银员进行支付:
您还可以看看在支付过程中可能遇到的一些问题:
以上就是关于小程序支付的所有内容,希望可以帮到你★,°:.☆( ̄▽ ̄)/$:.°★。