自制微信在线支付接口

想在自己的网站上面玩玩微信的在线支付接口,无奈注册的时候需要营业执照,只好作罢。
不甘心,想自己整一个,在这里记录一下。

自制微信在线支付接口

准备工作

一台已经ROOT好的安卓手机,我用小米4

一个自己的网站,我用阿里云的独立IP VPS,如果没有,也可以使用内网服务器搞个端口穿透,应该是一样的。网站使用python、Django、Apache搭建web服务器。

基本思路,安卓手机使用USB线连接一台主机,准备使用Linux-Debian9-32位。在Linux上面使用python脚本驱动安卓adb去轮询安卓手机通知消息。筛选出通知中的收钱包到账的消息。再使用python-urllib库告诉服务器web-Apache到账消息。服务器收到入账通知后再进行下一步处理。

实施过程

手机端测试

环境:下载安卓adb软件,win10系统USB链接手机正常,CMD下进入adb目录,执行

adb shell dumpsys notification

可以看见收钱到账的消息,前提条件成立。
接下来,在python中使用

os.popen("adb shell dumpsys notification").read()

遇到编码错误。
使用 subprocess 模块解决问题。

import subprocess
res = subprocess.Popen(cmd,stdout=subprocess.PIPE)
res_read = res.stdout.read() # 读到二进制内容
res_read.ecode() # 在进行解码
print(res.poll()) # 检查是否结束,并返回执行结果。
print(res.wait()) # 等待结束并返回执行结果

python顺利拿到微信收款信息。

cmd = adb_path + ' shell dumpsys notification'
#xx = subprocess.run(cmd,stdout=subprocess.PIPE)
while True:
    sleep(1)
    xx = subprocess.Popen(cmd,stdout=subprocess.PIPE)
    xx = xx.stdout.read()
    xxx = xx.decode()
    str1 = re.findall(r'微信支付:.*',xxx)
    if len(str1) > 0 :
        print(str1)

接下来是付款及确认付款的基本逻辑

web服务器在付款页面显示收款二维码

用户扫描并付款

Linux系统脚本轮询安卓手机的广播消息,获得收款记录。

Linux系统脚本通过requests模块推送消息给web服务器

web服务器确认付款记录,并刷新付款页面向用户反馈付款结果

收款确认逻辑:

  1. 准备收款页面
  2. 付款完成后页面跳转(这里需要使用js做页面局部刷新,卡住了,下一篇研究)

重点在于服务器确认付款记录,需要为每个用户单独创建会话。

    原文作者:qq_32080715
    原文地址: https://blog.csdn.net/qq_32080715/article/details/101422110
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞