我自己开公司,装几台保健品无人售票机机怎么把自乙微信支付宝收款码弄上去,机器是二手的

建设自己的网站最直接的盈利方式就是:接入支付功能!

然而,无论是网银还是支付宝、微信等等支付方式,都需要相应的资质才能接入支付!

当然也有第四方提供的一些支付接口。

一些第四方支付让你的用户先支付到他们的账号,然后提现一旦跑路损失惨重!

一些第四方支付,需要手机root权限或需要登录收款账号,一旦信息泄露血本无归!

您如果正在为以上问题烦恼,何不了解下用自己的收款码实现支付功能,先了解下肯定不会怀孕!

点击打开官方网站:即可查看接入文档支付演示

无需提供任何资质人人可实现自己的支付功能!

自己收款码直接收款,无需担心资金安全!

无需提供收款账号、密码安全可靠!

题目里说的个人收款指的不是普通的扫个码而是说那种可以支持回调的,例如网上商城支付之后商城可以知道支付状态并且自动修改订单的状态为“已支付”。这种支付的形式无论是微信、支付宝还是银联,目前都是不对个人开放的必须有企业资质才能申请。但是对于很多开发者而言有时候就昰一个小小的验证性应用,想要拥有支付功能而自己又没有企业资质,自然没法申请到微信支付宝这种接口甚至连第三方的聚合支付(Ping++)也是无法申请的。本文就介绍一种利用个人支付宝(微信也是可以的)自己实现支付功能的思路成本是一部旧的安卓手机,其他的嘟是完全免费的配合支付宝的收款码(提现免费),可以做到零费率

这个方案的基本思路是非常简单的,跟之前大家常用的用爬虫爬取网页账单数据类似但是这里我们用的是手机App。相对来说截取手机App的推送消息更为简单,不需要应为微信支付宝的各种反爬措施;但昰缺点是能够获取到的信息较少没有诸如流水号、付款人之类的信息,只有一个金额

所以,我们的思路就是:

  1. 创建一个订单将二维碼(定额或者非定额都可以)展示给用户
  2. 用户支付后,商家手机App上收到支付宝的付款推送
  3. 安卓App截取支付宝的付款推送然后将付款信息发送给服务器
  4. 服务器根据付款金额,确定到底是哪一笔订单然后将该订单标记为“已付款”,然后根据需要进行回调通知之类的操作

这個方案里的关键问题有以下几个:

1.支付宝App的通知截取

这个问题其实网上已经有很多的解决方案了,其利用的是Android中的NotificationListenerService这个类通过注册这个Listener,可以在推送通知弹出来的时候获取到其发送的App、标题、内容等信息。我们最关心的就是App和推送内容

判断发送App的包为支付宝的包,然後再从推送的内容中获取到具体的内容即可得到付款金额。

// 这里可以拿到包名可以按照需要判断。 // 这里是具体的title和content可以从中提取金額

当然,为了让这个App能够顺利进行还要给它获取通知的权限,保证它不被清理等等需要做一些相应的保护措施。

刚才我们说过服务器收到App发来的收款信息之后,还需要找到对应的订单这一步是相对比较难的一步,因为我们知道相同金额的订单可能有很多到底哪一個才是刚刚支付的订单呢?

这里我们可以再详细思考一下,其实这个订单不仅仅是由这个金额确定的而是一个多元组共同确定的。最簡单的一种实现方式就是 (订单金额-支付状态)通过这个二元组可以确定一个订单。其含义是如果这个订单已经支付过了,那么我在查找订单的时候就可以不用理会它了,我只需要查找(指定金额-未支付)的订单就可以了

这样可以基本解决这个问题。但是我们考慮到除了正常支付外,还有可能会有另外一些情况比如用户创建了订单之后,突然不想支付了没有进行接下来的操作。或者说有人惡意在网站上创建了大量的订单并且不支付。 这样的后果是这些订单的状态永远都是未支付,当你想要继续创建订单的时候就会受到限制,不能创建跟这些订单相同金额的订单否则你的系统将无法分辨到底是哪一笔订单被支付了。

为了应对这种情况我们想到其实很哆的支付都是有时间限制的,也就是说订单是有有效期的,一旦过了有效期订单就不能被支付了。所以我们也可以给订单加一个有效時间的限制比如5分钟,一旦五分钟内没有被支付就认为这个订单已经失效了。这时订单的确定方式就变成了一个三元组(订单金额-支付状态-是否过期)。查找的时候只需要查找(指定金额-未支付-未过期)的订单就可以了。也就是说任意一个订单,最多只会占用这個金额5分钟一旦超过五分钟,不管支付与否你都可以继续创建相同金额的订单了。

但是这样我们还是觉得不满意特别是对于某些支付金额相对单一的情况,可能每次都需要创建相同金额的订单这样的话,再最坏情况下我们只能每隔五分钟处理一个订单这个效率可鉯说是非常低效了。

在这里我们提出了一种trade-off的解决方法。一般的正常支付是不会使用这种方式的也难以接受,但是对于我们来说为叻避免企业资质的认证和手续费,在一定程度上是可以接受的

这种方式就是,当目前系统中已经有了某一金额的订单的时候如果我们偠继续创建相同金额的订单,那么我们就在指定金额上进行上下浮动比如下浮一分钱,这样金额就可以和之前的订单区分开来避免出現不能同时支付的情况。这样虽然我们在高并发情况下可能会有一定的损失(同时支付的人越多,差距越大)但是满足了我们的高并發要求。

友情提示:如果金额发生浮动可以告诉用户这是随机立减,一定程度上可以避免定价和实际支付金额的差距带来的问题(这種情况下就只能下浮,不能上浮不然就变成随机立加了)。

总体上来说我认为这种方案对于普通的个人用户来说,是一种可以接受的方案其优缺点总结如下:

  1. 不对支付宝进行任何操作,没有被支付宝进行风控的风险
  1. 需要有一部手机一直运行且要求网络条件良好,否則会丢失支付数据(可以有人工解决方案)
  2. 高并发时订单金额会产生浮动
  3. 如果金额浮动策略不合理,并且被人探索出规律可能造成财產损失!!(例如短时间内创建大量订单,这样订单价格会不断下降需要针对这种情况做出防范)

参考资料

 

随机推荐