前言
在国内环境,广大的个人站点及应用,因为业务发展需求,往往需要以个人资质申请对接微信和支付宝的支付渠道。然而现在无论是微信还是支付宝,仅支持具有企业资质的主体申请接口对接,对个人开发者而言,路已经完全卡死了。然而道高一尺,魔高一丈,聪明勤劳的国人想出了很多方法绕过这些限制。本文主要剖析当前具有可操作性的两种方法,供有缘人参考决策。
1. 通过金额
原理
安卓端的支付宝,在收到收款消息时,会弹出收到 XX 元的应用栏通知消息。这个通知栏消息,是可以通过编程手段获取到的。只需要监听用户的通知栏消息,判断是否是支付宝的通知,然后解析里面的金额,就具有了自定义回调接口的基础。
想像这样一种场景:用户A在网站发起100元的支付,然后网站后台呈现100元的收款二维码(这个二维码可以事先生成放在后台)出来,用户付款成功后,在商家的移动端,通过程序监控到支付宝收到了100元的订单,然后给网站回调。ok,后续的流程和回调逻辑,可以继续做了。
场景再复杂一点,那假如同一时间,有另外一个用户B也发起了100元的支付,可能还没有付款。同时商家移动端检测到了一个100元的订单,进行回调。由于只有金额信息,网站后台无法区分这个100元的订单,到底属于用户A,还是属于用户B,一下子就乱套了。涉及到钱的事都是大事,估计用户得炸了。
这种并发场景,可以通过一个很简单的技巧解决,即当多个用户发起同一金额的支付时,给不同的用户,呈现不同的金额二维码。比如上面的场景,用户A,呈现100元的二维码,同一时间用户B发起100元的订单支付请求,那就呈现99.99元的支付二维码,用户C再来,就呈现99.98元的支付二维码,依次类推。这样,移动端监测到的是不同的金额,因此也就具备了通过金额,区分订单和用户的能力。
优点
- 原理简单,实现简单。
- 账号比较安全,没有被支付宝风控的风险。
缺点
上面这种通过不同的金额实