Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

583/WeChatPayListener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

13 Commits

Repository files navigation

微信二维码支付监听器

由于私人无法向支付宝微信等申请支付API,让我们这些开发收费软件的个人开发者很难办,只能另寻门路。

一般我们通过在服务器挂软件,通过不停刷新支付宝帐单或者QQ机器人等方式实现自动售卖,但微信版的很少见到,于是我自己实现了一个。

分析

微信有手机版、电脑版、网页版,为了降低协议分析难度选择网页版入手。

通过微信收款的方式主要有三种,红包、转账和二维码转账,前两个需要添加好友,并且需要在手机端点击确认才能到账,电脑和网页版均无法确认收款,而二维码转账则不需要加好友,并且是直接到账的。

登录网页版微信,发现通过二维码转账后会收到服务通知,这边可获取的参数有收款金额、留言、到账时间,OK足够用了。

所以最终实现方法是,提前生成收款二维码(二维码是不会过期的),让用户扫描二维码,留言备注帐号并付款,我们在后台通过微信网页协议进行监听,收到款时,通过得到的备注信息和金额进行相应处理。

优点

绕过微信支付授权,实现用户微信支付后自动开通会员等功能。

缺点

需要用户用微信手动扫码和填写备注信息,而且用户付款时可能忘记或填错备注。

如果用户付款时服务器端微信掉线,再次上线后无法重新得到消息,会造成丢单。

目前我的解决办法是掉线后立即向我发邮件通知,并且留一个接口让软件和用户可以检测服务器微信是否在线,至于填错帐号或者丢单了只能人工处理。

还有网页协议不稳定,发生变动后可能需要更新。

说明

核心代码在WeChat.java,协议均通过对微信网页版抓包得到,把里面的checkPay方法里的openVip改成你的业务逻辑。

直接编译会提示找不到MtUtil类,这里面是我后台开通会员的业务代码,不公开,你们自己替换。

微信支付二维码在手机生成,可以预先设置金额。

运行本程序,扫描二维码登录,当该微信号通过二维码支付收到款时会立即得到消息。

其他

目前还没测试能保持在线多久,掉线后会发送通知邮件到我的邮箱,相关代码自行修改。

登录成功时会在运行目录创建一个Running文件,离线或退出后会自动删除,用途是我写了个jsp来访问判断微信是否在线。

如果登录成功后直接x掉控制台,Running文件不会自动删除,需要在控制台输入exit来手动退出。

我的微信公众号开通会员说明页面

About

微信二维码支付监听器 - 免签接口

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%

AltStyle によって変換されたページ (->オリジナル) /