支付宝周期扣款(支付后签约)业务功能总结(php+golang)_external_agreement_no-CSDN博客

admin 阅读:39 2024-04-12 00:46:56 评论:0
支付宝周期扣款(支付后签约)业务功能总结(php+golang)_external_agreement_no-CSDN博客

  周期扣款支付后签约场景文档:https://opendocs.alipay.com/open/041bxs

  1、处理签约成功回调,添加到订阅表

  2、定时任务自行请求订阅表,把达到扣款日期的订阅,然后请求支付宝扣款,并本地开通权限给用户,再计算下次扣款时间

  3、处理签约解除回调,删除订阅表数据。(需要去设置网关回调地址,有退款的话支付宝会回调告诉我们)

  golang包:https://github.com/phpgolangdeveloper/smartwalle

  phpsdk包:https://opendocs.alipay.com/open/02np96

  注意:上面的golang的包我是做过改进的,在 https://github.com/smartwalle/alipay 基础上改了源码

  把改进的包下载下来之后,放在gopath路径中:/Users/twj/Documents/go_www/src/github.com/smartwalle/alipay,我这里的go是gopath环境

  因为我们支付系统是用golang写的,业务系统是用php写的,所以下面会有两个系统的代码,但go和php都大同小异。

  1、支付宝的周期扣款,后续的扣款是商家自行请求扣款接口的,支付宝是不会帮你们做定时器然后回调接口提示你已经扣款的。需要你自己写定时任务计算好扣款日期,再去请求支付宝的,然后支付宝可以提前5天扣款。

  2、周期扣款日期不能是28号到月底最后一天的,假设下次扣款日是9月28日,那么建议你设置扣款日期是下个月的1~3号,也就是这个字段:execute_time

  3、周期扣款的后续,商家自行请求支付宝时候,每笔扣款是100元内,也就是你接入周期扣款的时候,后续的每笔自动扣款都必须是100元内,没得提升,想要提升额度就是要用商家代扣,具体问问alipay客服。

  golang代码

  结构体

  业务代码:

  1、php使用的是阿里云提供的sdk包,上面有链接

  2、写一个定时任务,每次扣款、首次签约,都计算好扣款时间,定时任务去查数据库,查当天是否达到了扣款时间,然后进行扣款逻辑。

  去支付宝的开放后台设置设置应用网关。用户解除签约的时候,是会回调到这个地址的

  解除签约回调地址的逻辑

本文 zblog模板 原创,转载保留链接!网址:https://www.gulangwanhotelxiamen.com/post/4793.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
排行榜