什么是个人免签支付
个人免签支付就是给个人用的支付接口,一般的支付接口都需要营业执照才能申请,个人很难申请的到,或者是没有资质去申请,要和支付商进行签约的。免签,顾名思义就是不需要签约。那么个人免签支付就有市场了,就是为了解决个人无法轻易申请到支付接口的问题。
免签的方案有很多种
1、APP监听收款码的支付结果,然后修改页面的支付结果。
2、二次清算。款先到拥有官方支付接口的商户中,由商户给你结算。
3、Xposed微信插件实现全自动监听创建收款码、以及收款过程,容易封号。
方案其实有很多种,但是以上的方案都有不少的缺点,当然这些方案仍有不少人在用,没办法,确实是解决问题的一种办法。而本次文章我也是通过简单的技术开发实现第一种APP监听收款码的免签支付方式。
APP监听收款码的支付结果
整个过程很简单:访问URL -> 检查数据库2分钟内未支付的订单金额 -> 如果2分钟内未支付的订单金额中存在当前订单一样的金额,需要在当前金额基础上+0.01元用于区分订单的唯一性 -> 用户扫码支付 -> 安卓手机APP监听到这笔订单的收款 -> 将收款金额异步发送到服务器 -> 服务器修改数据库该笔订单金额的支付状态 -> 扫码页面一直在轮询订单的支付状态,发现已支付就修改页面的支付结果 -> 完成支付。
话不多说,直接上代码
index.php
该页面是用于创建订单的,其中 $order_price = 0.01; 就是创建一笔0.01元的订单。
创建订单前,程序会查询数据库来确定当前金额是否存在未支付的订单,如果存在,需支付的金额会在当前订单金额基础上+0.01元。
为什么要这么做?因为APP监听只能监听到收到了多少钱,无法监听到订单号,所以无法区分这个金额是你支付的还是其他人支付的。 所以在当前订单有效期内,你需要注意两件事,第一,你这个程序的访问量一定不能太高,不允许高并发的情况出现,适合小众,小规模,小流量的业务使用,一旦人多了,短时间内订单量多了,很难做到精准的监听支付结果。
监听APP配置
监听APP配置也挺简单的,只需要将notify.php的线上URL配置至APP即可。
具体操作请看截图:
1、打开APP,选择【发送通道】点击【Webhook】,选择【GET请求】 ,输入notify.php 所在服务器的URL,下面的参数填写【orderMsg=[msg]】即可。
2、选择【转发规则】,点击【应用】,添加转发规则,【APP包名】,选择【是】,包名输入【com.tencent.mm】,选择的发送通道是上一步你创建的通道,下方的模板直接选择通知内容即可。
到这里,APP基本完成配置,然后将这个APP的自动启动开启,以及加入电池优化白名单,保证这个APP能一直在后台运行不被杀死。
赞赏码获取
为什么用赞赏码而不用收款码?因为收款码更容易被风控,收款码更加适合面对面扫码收款,而不适合线上远程收款,因为你的每一笔支付,都会记录付款ip地址,定位等信息,扫码次数多了,就会被系统判断远程付款,容易触发风控。赞赏码是用于网络上的赞赏使用,相对来说是比收款码安全的。
获得自己的赞赏码后,将赞赏码的那部分裁剪出来,替换掉源码中 zsm.jpg 这个文件就行了。赞赏码是可以设置赞赏的引导语的,可以将引导语修改为【请点击其他金额输入】,引导用户。