侧边栏壁纸
博主头像
七哥的技术博客

You got a dream, you gotta to protect it!

  • 累计撰写 60 篇文章
  • 累计创建 71 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

vmq开源支付系统部署

admin
2025-02-11 / 0 评论 / 0 点赞 / 6 阅读 / 0 字

前言

vmq 是一套开源版的支付系统,可以进行免签支付,并提供了客户端以及服务端的部署版本

官方发布有 java 和 php 的服务端版本,这里以 java 的版本作为服务端,官方地址

https://github.com/szvone/Vmq  
https://github.com/szvone/vmqApk

支付原理

通常只能是商家才能接入支付业务,如果个人要接入支付业务,通常有以下几种方式

1、通过第三方如虎皮椒这种平台

但是这种支付有一定限制,比如说存在域名限制不能变更,另外还有开户手续费,以及每笔订单抽成

而且大量这种野生的支付平台,一旦选择不慎,平台随时都存在跑路的可能

2、个人搭建免签系统

微信对个人不支持免签,支付宝可以进行面对面支付,个人也能开通,不过也有可能被随时中止

这里支付的本质问题就是,对个人用户,微信/支付宝是否有提供支付回调,对商户而言是有支付回调的

如果微信/支付宝不提供回调,那么在你的产品被客户付款之后,你的平台是无法感知到的

所以出现了免签系统,免签系统用的比较多的就是 V 免签

它的原理就是:

部署一个 java 的 Vmq 或者 php 版本的服务端 ,以及一个安卓客户端 VmqApk

安卓客户端手机上运行着微信/支付宝,并且监听着通知栏消息,打开手机的微信/支付宝的通知消息

在接收到消息的时候,显示在通知栏上(因为权限问题,这里是没有 iphone 版本客户端的)

VmqApk 在监控到微信/支付宝通知消息之后,通过解读通知消息,如果发现是支付信息

那么就会向 Vmq 服务端发送支付响应,表示当前已经收到支付信息 XX 元

但是这一类免签系统都存在着天然的缺陷,就是无法处理并发订单的问题

所以 Vmq 在处理这个问题上,限制订单在有效期内一个金额数值只能有一笔订单

相同金额的订单会进行 1 分钱的递增/递减以便区分

服务端部署

官方提供的编译版本,默认监听在 8080 端口,可以启动时指定监听端口

数据存储使用 h2 本地数据库文件,windows下默认在 C:\Users\Administrator\mq.mv.db

java -jar vmq.war --server.port=9090

启动成功后,终端窗口会有提示信息,没问题的话会正常监听,比如我这里监听在 8003 端口

登录首页,默认账户密码为 admin/admin,登录后候建议修改密码

客户端部署

电脑端运行浏览器访问服务端的 web 页面,在设置页面进行收款二维码的配置

将 apk 安装包拷贝到安卓手机上安装,并使用扫码配置,进行配对初始化

从 github 仓库的代码来看,默认只支持 http 明文的请求,对于 https 的请求是无法配置成功的

如果 vmq 服务端的域名配置了证书的话,有两种处理方式

1、一种方式是开放 http 访问,使得服务同时支持 https 和 http 请求

2、一种方式是修改官方 Apk 版本的代码,支持 https 请求访问

改动也很简单,把代码中 http 改成 https ,修改后重新编译安装,然后扫描服务端进行配置就可以了

改了之后,就不支持 http 了,如果还需要支持 http,那么这里的代码就需要做适配兼容了

0

评论区