个人支付收款接口现状剖析

article/2025/8/16 0:11:01

前言

在国内环境,广大的个人站点及应用,因为业务发展需求,往往需要以个人资质申请对接微信和支付宝的支付渠道。然而现在无论是微信还是支付宝,仅支持具有企业资质的主体申请接口对接,对个人开发者而言,路已经完全卡死了。然而道高一尺,魔高一丈,聪明勤劳的国人想出了很多方法绕过这些限制。本文主要剖析当前具有可操作性的两种方法,供有缘人参考决策。

1. 通过金额

原理

安卓端的支付宝,在收到收款消息时,会弹出收到 XX 元的应用栏通知消息。这个通知栏消息,是可以通过编程手段获取到的。只需要监听用户的通知栏消息,判断是否是支付宝的通知,然后解析里面的金额,就具有了自定义回调接口的基础。

想像这样一种场景:用户A在网站发起100元的支付,然后网站后台呈现100元的收款二维码(这个二维码可以事先生成放在后台)出来,用户付款成功后,在商家的移动端,通过程序监控到支付宝收到了100元的订单,然后给网站回调。ok,后续的流程和回调逻辑,可以继续做了。

场景再复杂一点,那假如同一时间,有另外一个用户B也发起了100元的支付,可能还没有付款。同时商家移动端检测到了一个100元的订单,进行回调。由于只有金额信息,网站后台无法区分这个100元的订单,到底属于用户A,还是属于用户B,一下子就乱套了。涉及到钱的事都是大事,估计用户得炸了。

这种并发场景,可以通过一个很简单的技巧解决,即当多个用户发起同一金额的支付时,给不同的用户,呈现不同的金额二维码。比如上面的场景,用户A,呈现100元的二维码,同一时间用户B发起100元的订单支付请求,那就呈现99.99元的支付二维码,用户C再来,就呈现99.98元的支付二维码,依次类推。这样,移动端监测到的是不同的金额,因此也就具备了通过金额,区分订单和用户的能力。

优点

  1. 原理简单,实现简单。
  2. 账号比较安全,没有被支付宝风控的风险。

缺点

上面这种通过不同的金额实现回调的方式,缺点是非常明显的,随便列几点:

  1. 仅支持支付宝。微信的移动端通知消息里面,并不包含金额信息,因此这种方法就熄火了。
  2. 由于是通过金额进行订单和用户区分,因此需要提前上传收款二维码,包括用于应付并发场景的大量上下浮动的二维码。对于有大量定价的站点和应用,这个工作量是非常可观的。
  3. 不利于定价调整。每次定价调整,都需要上传大量收款二维码。
  4. 不支持任意金额。还是因为要事先上传收款二维码。

代表

通过金额区分订单和用户的方式实现支付接口回调,由于原理简单,实现成本并不高,因此现在市面上有大量基于该原理实现的支付接口平台。列举如下:

  1. paysapi

https://www.paysapi.com/

在这里插入图片描述

点评:paysapi 官网提到支持微信。其实是通过上传一张任意金额的微信二维码实现的。也就是用户发起支付后,需要人肉的输入支付金额,这在体验上是比较差的。

  1. 虎皮椒

https://www.xunhupay.com/

在这里插入图片描述

点评:和 paysapi 的网站一毛一样。

  1. goddpay

http://goddpay.com/

在这里插入图片描述

点评:和 paysapi 的网站还是一毛一样。

  1. 支付吧

https://www.unionpaybank.com/

在这里插入图片描述

点评:无

2. 移动端 hook

原理

移动端安卓平台,是一个比较开放的平台。我们运行的几乎所有软件,都是可以通过一定的手段,进行底层编程 hook,自定义其行为的。比如微信消息防撤回,摇骰子划拳作弊,自动抢红包,还有支付宝的余额 & 等级自定义装逼等功能,都是通过诸如 xposed, virtualxposed 等 hook 框架技术编程实现的。

同样,微信和支付宝的收款二维码自动生成,包括支付成功的消息检测,也是可以通过 hook 的手段,进行编程作业的。大致流程如下:

用户发起订单支付请求,然后移动端 hook 软件,监测到这个支付请求,获取到金额和平台(微信还是支付宝)信息。调用相关的软件,注入相关的二维码生成行为,ok,相关金额的二维码生成成功,再显示给用户。

用户支付成功后,同样的,不论是微信,还是支付宝,都会检测到相关的支付成功信息。移动端 hook 软件,同样也可以检测到。然后进行回调。再后续,就是业务系统处理流程逻辑了。

缺点

  1. 需要安装移动端 hook 框架,比如 xposed, virtualxposed 等。其中,xposed 软件,还要求系统必须 root。
  2. 存在一定的安全风险。因为 hook 软件,可以监测到微信和支付宝的软件行为,包括你的密码信息,因此存在一定的安全风险。
  3. 账号存在被风控的可能。不论是微信还是支付宝,对自家软件被自定义的行为,都是零容忍的。

优点

  1. 与上述通过金额实现回调的方式比起来,这种方式有明显的优点,就是不需要提前上传大量二维码,支持任意金额的支付处理。
  2. 同时支持微信和支付宝。
  3. 并发能力,可以相对做到比较高。

代表

基于 hook 方式实现支付接口回调,对软件开发者的要求较高。因此相关的解决方案并不多见,现简单列举如下:

  1. 微米富

http://www.weimifu.net/

在这里插入图片描述

在这里插入图片描述

点评:基于 virtualxposed。虽然网站几乎和 paysapi 一毛一样,但接口回调实现的原理,却大相径庭。另外,微米富还有一个特殊的地方,就是其在移动端 hook 软件里面,内置了一个微型的 web 服务器,直接接收并处理用户的支付请求。这也导致了几个问题,一是限于移动端 web 服务器的性能,并发的处理,有一定的限制。二是支付页面的调整和定义,需要修改移动端代码。三是软件配置流程复杂(web 服务器代理相关的配置)。

  1. greenyep

https://www.greenyep.com

在这里插入图片描述

在这里插入图片描述

点评:基于 virtualxposed。greenyep 和 微米富有一些细微的区别。它并未在移动端 hook 软件里面内置 web 服务器,而是采用定时检测的方式,去后台服务检测订单信息。这样做的好处是可以有一个中心化的平台做订单的调度和统计,同时性能也较内置 web 服务器的方式,有一定的提高。缺点也是明显的,并不方便软件的分发,做一些私有化的部署。

建议

  1. 如果站点和应用的支付场景比较简单,同时对微信支付没有强需求,可以考虑诸如 paysapi 等通过金额进行区分实现接口回调的平台。
  2. 如果对安全及风险敏感度较高,同样建议考虑 paysapi 等平台。
  3. 如果支付场景比较复杂,需要支持任意金额,同时对微信和支付宝渠道均有需求,可以考虑诸如微米富,greenyep 等平台。
  4. 接上,如果对系统稳定性,并发能力要求较高,可以考虑 greenyep 平台。
  5. 接上,如果期望私有部署的便捷性,可以考虑微米富平台。

以上拙见,欢迎拍砖。也可以直接与作者取得联系探讨:353066897@qq.com

转载于:https://my.oschina.net/u/4020046/blog/2874441


http://chatgpt.dhexx.cn/article/tqvkuGd8.shtml

相关文章

课程管理

课程管理 121.课程管理-发布课程界面和模型完成122.课程管理-视频云存储讲解123.课程管理-发布课程功能完成124.课程管理-视频加密播放实现125.购买课程-课程订单页面完成126.购买课程-支付宝和微信支付功能准备工作127.购买课程-生成课程订单128.购买课程-配置pycharm同步代码…

视频的上传及购买播放

一、上传视频 1:使用百度云: 登录百度云:https://cloud.baidu.com/ 进入管理控制台;开通 “视频点播VOD” 服务;在后台管理系统 --> 右上角“安全认证” --> 获取 “AccessKey”;在 “视频点播VOD” …

基于SSM bootstrap的JSP MYSQL路路通汽车租赁系统

车辆租赁系统,主要包括对用户的管理,司机的管理,车辆的管理及租赁的管理等四大模块。车辆租用赁系统管理员系统的功能模块设计如图4-1,操作员子系统功能模块图如图4-2所示: 图4-1车辆租赁管理系统管理员操作子系统功能…

PaysApi第三方支付接口的接入与使用 React前端SSM后端

本文实现涉及实现思路以及预期结果 前端React 后端SSM 支付接口PaysApi以及阿里云 正式开始 对比了很多第三方支付接口,选到paysapi也是因为它捕获信息的能力经过测试后还不错,官方接口文档说明的非常清楚 ,所以选用,这个demo…

企业微信接入自研小程序流程

一、背景 企业微信是企业内部办公常用的即时通讯工具,可以作为企业内部工作的枢纽,例如:重要内容通知,重要应用的集成等。 二、自研程序接入企业微信配置 1.登录企业微信管理后台https://work.weixin.qq.com/ 2.找到应用管理-…

【微信小程序】小程序发送订阅消息教程

1.订阅消息 订阅消息前身也就是模板消息,使用过模板消息的同学在使用订阅消息的时候就会非常简单了。下面让我们来看一下订阅消息如何使用! 传送门:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html 2.获取模板ID 这个在…

微信小程序的发布流程

当我们开发完小程序后需要做哪些事情才能上线,在小程序搜索到并且可以正常使用呢 首先,需要把http改成https,因为在本地调试的时侯我们在工具不检验合法域名,但是线上的版本必须是https,所以需要后端去申请一下。 然…

发布微信小程序体验版的流程

文章目录 发布微信小程序体验版的流程第一步第二步第三步在微信开发者工具的右上角,点击选择 **上传** ![在这里插入图片描述](https://img-blog.csdnimg.cn/66879544b7ec4cb6ae9c18e84352b79f.png) 第四步第五步总结 发布微信小程序体验版的流程 提示:…

微信小程序发布详细步骤

第一步:检查代码质量 运行微信开发者工具 > 点击详情,选择性能分析,进行代码质量的扫描。 把未通过的部分改改。 第二步:发布体验版 点击上传 > 填写版本号,项目备注 > 点击右下角上传即可 第三步&#xff…

微信小程序发送消息推送

在小程序开发中,如果想实现:用户发给小程序的消息以及开发者需要的事件推送,在小程序项目中,我们想要实现这样一个功能, 比如我们小程序中的客服功能,我不想要使用小程序后台的在线客服功能,但我又想实现客服功能&…

微信小程序订阅消息通过服务通知发送

第一步:申请模板获取模板ID: 登录微信公众平台 -> 功能 -> 订阅消息 -> 对里面的模板进行选用或者自定义 公共模板库里面的模板分为一次性订阅 和永久订阅,这个是根据你创建小程序时选择的行业进行区分的。 https://developers.we…

给微信小程序发送消息

给微信小程序发送消息 所用技术:后台:jeecgboot 数据库:oracle 前台:vue2.0 首先登陆微信公众平台 链接: https://mp.weixin.qq.com/ 1.登陆之后每个公司 都会有自己得相关参数例如 appid之类得 后面代码里时要用到的 2.然后先…

微信小程序通过公众号服务号发送消息

一、基础概念: 准备条件: 1、公众号和小程序必须在同一个公司主体下。 2、在公众号后台需要对小程序进程绑定操作。 公众号提供了两种消息,一种是订阅消息,一种是模板消息。 订阅消息需要用户主动订阅,然后才能接收消息&#x…

六、微信小程序发布流程

目录 1、上传2、提交审核 1、上传 当我们写完代码后 点击微信开发者工具的上传 要么是体验版 要么是1.0.1最新版 直接点击确定或上传即可 【前提是你本人必须是小程序的管理员或项目成员】 上传成功会有提示弹窗 2、提交审核 在版本管理中我们能看到上传的小程序版本 在这里我…

微信小程序发布全流程

1.在微信公众平台注册 我选的是用QQ邮箱注册的,因为我的163邮箱和微信绑定的,不能使用注册。 登陆进来就是这个页面啦。 2.npm打包(假设您的电脑已经安装了nodeJS) 选中您的项目,然后到项目的根目录下 执行npm ins…

微信小程序申请+开发+发布流程

框架用的Taro,开发工具用的是VSCode微信开发者工具,VSCode主要用来编码,微信开发者工具主要用来看和最后上传那么一下,其他没什么好说的。放张图,大家自行体会: 利用taro发布web程序如下: 过程整…

微信小程序发布流程

1.授权 登录微信公众平台微信公众平台,给相应人员授权;最好同时添加体验成员(用于验证测试)。 2.开发工具及代码 下载官方的微信开发者工具,使用微信扫一扫登录;同时下载最新的项目代码,导入…

信号与系统(四)

注:本博客是基于奥本海姆的《信号与系统》第二版编写,主要是为了自己考研,准备专业课。 (转载:https://blog.csdn.net/Explorer_day/article/details/77177542) 一、基本系统性质 1、记忆系统与无记忆系统 ①无记忆系统 如果对…

信号与系统 | 信号与系统概述 | 信号的基本概念和分类

文章目录 常见的概念信号的描述信号的分类确定信号和随机信号连续信号和离散信号周期信号和非周期信号能量信号和功率信号一维信号和多维信号因果信号和非因果信号 信号的matlab表示与绘图 常见的概念 消息,来自外界的各种报道统称为消息信息,消息中有意…

城市轨道交通信号系统学习笔记(四)信号机

信号机 <font face"楷体" size5>一、地面信号机的设置</font><font face"楷体" size5>二、信号显示</font> 城市轨道交通采用与铁路相同的色灯信号机&#xff0c;但设置位置和信号显示不同于铁路&#xff0c;信号显示距离也有自己…