支付宝代扣接口签约的各种问题排查(建议收藏)
之前对接支付宝商家扣款的时候,在签约协议的部分卡了很久,今天把之前遇到的签约问题汇总记录一下~
协议签约流程
首先帮大家捋一下签约的顺序,便于直观理解:
其次还需要知道的是,支付宝的商家扣款的签约接口有两个:
- 一个是单独签约接口:
- 另一个是支付并签约接口:
这两个接口都可以签约,主要区别在于签约的时候是否涉及支付,可以根据业务场景去确认使用哪个接口签约。
具体问题一览
签约流程看起来比较简单,但在签约的各个阶段都容易遇到问题,比如:
- 生成的签约串,为什么唤不起签约页面?? ̄へ ̄
- 为什么签约跳转到支付宝的时候会中转一下支付宝页面??(▼皿▼#)
- 签约完成了之后为啥没有通知!!(╬ ̄皿 ̄)
- 为什么我收到通知了但是还是签约失败了?!(╥╯^╰╥)
虽然问题很多,不过好在最终都顺利解决了,下面将详细记录每个问题的解法,供大家参考~
排查思路
问题一:生成的签约串,无法唤起签约界面,报错“开通失败”
遇到这个问题后,搜索参考了官方文档,发现这个报错的意思就是参数有问题,下次遇到直接检查参数即可。
以下这些参数都有可能导致这个报错,在此做一汇总,帮大家避坑、自查:
- external_agreement_no 传了,但是没有传 sign_scene
- external_agreement_no 传了,但是 sign_scene 是默认值
- channel 错误或者为空
- execute_time 下次扣款时间为空,或者 格式不是 yyyy-MM-dd
- period_type = DAY 的时候,period 周期小于 7 天,最小周期不能小于 7 天
- period_type = MONTH 的时候,execute_time > 28 日
- total_amount < single_amount 总扣款金额小于单次扣款金额
- total_payment 总扣款次数为 0
其它唤起签约常见报错可参阅官方文档:
问题二:为什么签约跳转到支付宝的时候会中转一下支付宝页面
唤起签约没有问题之后,遇到了一个体感不好的地方,就是在唤起签约跳转到支付宝的过程中会遇到先跳转到支付宝页面的问题,虽然没有什么大的影响,但是整体体感上不是很好 =^ =。
这个找了支付宝客服问了下,结果主要是因为我生成的签约串的拼接方式有问题,使用
alipays://platformapi/startapp?appId=60000157&appClearTop=false&startMultApp=YES&sign_params=
去拼接就可以了,客服给力o( ̄▽ ̄)d
拼接链接参考官方文档:[周期扣款无线端如何唤起签约] 即可~
其它签约跳转常见问题可参阅官方文档:
问题三:签约完成了之后为啥没有通知
原因一:签约失败了
这个问题的最重要的是要确认是不是签约成功了!!只有签约成功的情况下,支付宝才会发送异步通知。
一直没有收到通知的情况下,一定要通过查询接口去确认是不是签约成功的。
原因二:异步地址有问题
另外笔者还遇到过因为设置的地址有问题导致没有收到的,此类问题可以参考官方文档:[收不到异步通知]。
商家扣款签约接口比较特别的是,他的签约地址可以在三个地方设置,分别是:
接口的 sign_notify_url 参数、接口的 notify_url 参数、平台上的 应用网关 地址。
优先级是 sign_notify_url > notify_url > 应用网关
其他常见问题可参阅官方文档:
问题四:为什么我收到通知了但是还是签约失败了
让我觉得最「坑」的还是这个支付并签约接口了。
刚开始收到通知之后觉得已经签约成功了,但是消息内容怎么看都跟之前接收到的不一样,研究了下发现是支付的通知,不是签约的通知。
查了文档才知道,这个接口他发两条通知,一条支付的,一条签约的。
而且支付成功不一定签约成功。
不管怎么说,一定要根据是否收到了签约的异步通知来判断签约状态,实在不行就用查询接口查。
另外要注意,如果我们选择不开启自动续费的话,也不会有签约成功的通知。
其他常见问题可参阅官方文档:
以上就是关于支付宝接口签约遇到的所有问题啦,希望对你有所帮助,有问题一起沟通~✿✿ヽ(°▽°)ノ✿