isv⽀付宝⼩程序三⽅模板开发快速指南
这篇⽂章是关于第三⽅帮客户⾮定制开发⼩程序的指南,如果不是这⽅⾯的需求,下⾯就不⽤看了。
写⽂章之前,不得不吐槽⽀付宝⼩程序第三⽅⽂档实在是有点迷,流程上不清晰,内容上东躲西藏,部分内容左⼀脚右⼀脚,让⼈看的云⾥雾⾥,⼀把⾟酸泪!
所以强烈建议isv开发者在阅读⽀付宝三⽅⽂档之前先看我这篇,毕竟我的流程是跑通了的,如果看⽀付宝的,那么你⼤概率是看完还不知道该怎么办!当然⽂档⾥肯定有错误或不完善的地⽅,如果哪位⼤神看到还希望指出。
在⼤量发帖询问然后和周旋很久之后我才弄明⽩,三⽅开发有两种⽅式:
⽅式⼀:》》》》⽀付宝开发⼯具上传⼩程序》提交审核我⽅⼩程序模板》(线下就是服务商⾃⼰提供⽹页渠道,也可以,线上就是通过⽀付宝订购)》(接受授权回调》》》》)
⽅式⼆(我采⽤的):》》》》⽀付宝开发⼯具上传⼩程序》提交审核》》》(接受授权回调》》》》)
备注:
a、⽅式⼆中的 的流程细分为 isv服务商展⽰授权⼆维码->商家扫码并把已创建的⼩程序授权给我们->⽀付宝调⽤授权回调地址(携带有商家⼩程序的app_auth_code,见3-3的图⽚⾥的回调地址)->我⽅接收⽀付宝请求app_auth_code并存到缓存(见代码)
b、⽅式⼀和⽅式⼆中都需要在⼩程序编码完成后通过⽀付宝开发⼯具上传到后台并审核通过,否则后续功能⽆法进⾏,所以⼩程序编码并提交审核这⼀步需要提前做
c、⽅式⼀和⽅式⼆中的更具体的可以可以看: ,我的版本低于4.6,⽤的是。在⾥的接⼝⽐如中就可以使⽤上⾯存起来的
app_auth_token了
步骤:
0、创建账号、前期准备、基础配置...
这步就不⼀⼀贴图了,这⾥的流程按照⽀付宝的来就⾏
1、创建第三⽅应⽤和⼩程序模板
1)创建第三⽅应⽤
小程序开发一键生成平台源码这⼀步就不⽤多说了吧,照着⽂档来就⾏了。
2)给第三⽅应⽤配置⽀付宝公钥和应⽤公钥,可以参考,在调⽤、等接⼝时,会⽤到这些公钥
注意:
这⼀步在创建应⽤私钥时注意,⾮java的密钥格式要选择PKCS1
3)创建⼩程序模板并将编码好的⼩程序上传给指定⼩程序模板
isv在三⽅⾥模板,⽆论是⽅式⼀还是⽅式⼆,都需要创建⼩程序模板。创建完成以后,可以把编码完成的⼩程序通过⽀付宝开发⼯具上传到⽀付宝后台。
上传后的效果:
2、商家(开发者)创建⼩程序
如果是采⽤⽅式⼆,需要商家⾃⼰建⼀个⼩程序。
⽅式⼆开发注意的坑:
我在测试环境中,⼀直⽤我们企业账号创建⼩程序后扫码授权给第三⽅,但是后⾯再获取token时⼀直报错code⽆效,浪费了⼀上午,后来客服让我换个⼈账号注册⼩程序再授权,顺利解决了。
最好准备⼀下营业执照,在中的接⼝提交时,如果是个⼈⼩程序来扫码授权,会提⽰升级为个体户,没有营业执照是升不了的。如果没有,就⽆法提审通过,后⾯的上线下线接⼝也是测试不了的。
3、商家(开发者)把⼩程序授权给第三⽅应⽤
授权流程
1)》三⽅服务》》发起授权 ,讲弹框中的⼆维码下的链接发给⽤户扫码授权
2)把上⾯的⼆维码发给⽤户,⽤户⽤⽀付宝扫描,勾选并点击授权
state参数:如果想知道是哪个⽤户扫了码,可以在链接上添加state,携带⽤户标识的base64位编码(如⽤户user_id的base64位编码),然后通过链接转⼆维码的包,把⼆维码展⽰给⽤户,这⾥我⽤的是vue的;
如果是服务商测试,可以直接打开上⾯的链接地址,将第2步创建的⼩程序授权给第三⽅应⽤,来模拟商户授权⼩程序,不过强烈建议不要⽤这种⽅式,这种⽅式⽣成的app_auth_code获取app_auth_token时⼀直不通过,以下图⽚只为了说明步骤,开发者最好更换成⾃⼰的⽀付宝创建⼩程序扫码授权才能避坑(这个坑浪费我⼀上午时间)
授权地址为:
根据客服的说法,单个授权链接⽤户打开后不需要选择⼩程序,因为单个授权链接可能是其他⾮⼩程序的三⽅授权时使⽤的授权链接,如果你是服务商开发三⽅模板,那么只能选择批量是授权链接。即必须先让⽤户把创建的⼩城许授权给我们才能完成后续的动作
4、授权回调及编码
1)扫码授权成功后跳转到我⽅指定回调地址,我⽅接⼝获取商户授权的app_auth_code
这⾥的代码可以往下看代码: AliAppController.AuthRedirect和AliAppService.GetUserAuthCode
如果是测试环境,建议使⽤内⽹穿透,在本机接收到⽀付宝的异步通知可以把上⾯的地址修改成本机地址。
按照上述⽅法配置好ngrok后,为本机地址:
2)通过获取到的app_auth_code获取app_auth_token、app_refresh_token等数据
app_auth_token和app_refresh_token的作⽤:关于app_auth_token和app_refresh_token很多⼈很疑惑,不是很理解这部分。我按我的理解来说吧。app_auth_token是⼩程序实施时所有接⼝(构建、提审、上下线)时必传的参数,但是你使⽤⼀次之后,下次再调⽤接⼝接⼝使⽤已经⽤过的app_auth_token时就会说它⽆效了,所以需要在每次调⽤接⼝前都通过 获取新的app_refresh_token获取
app_auth_token和app_refresh_token,然后再携带app_auth_token掉接⼝,最后要记得每次掉完接⼝把该客户的新的
app_refresh_token保存到⽤户授权表⾥⾯,⽅便下次调⽤接⼝时使⽤它再次获取新的app_auth_token和app_refresh_token。
另外我们也可以快速查看app_auth_token,如下如红框中。我们每调⽤⼀次 ,就会⽣成⼀条记录
⽤户扫码后,⽀付宝会回调我们的接⼝地址,我们会接收到回传的第三⽅应⽤的app_id和商户的app_auth_code和state参数(如果授权链接传递了state参数),在代码⾥我们请求 获取app_auth_token
参数说明:
grant_type:如果是第⼀次请求,那么grant_type填写authorization_code
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论