前言

最近给自己开发的市肥宅中心二次元社区添加了自助充值肥宅币功能,也就是充值积分的功能。由于网站是个人无备案,所以对接微信支付比较麻烦,于是就找了第三方免签支付平台来开发该功能。

之前一直觉得给网站开发自助充值功能是非常牛的事情,现在终于是实现了,全程无扣钱,直接到账自己的微信账户。你需要做的只要注册一个第三方平台账户,然后下载监控端app,到你的安装模拟器上保持运行就行。

下面来讲讲如何开发吧~

前期准备

  • 注册gogo支付平台的账号(官网)
  • 下载安卓模拟器(这里我用的是雷神模拟器)

前期准备的相关文章可以看这里,官网已经发布了搭建教程了:教程地址。

这里我要说的是用python来搭建这套支付系统,因为我的社区使用python开发的。

开发

这里默认你已经将监控端正常运行在了带有微信的安卓模拟器上,并且添加了收款码。那么就开始吧!

打开pycharm建立一个flask工程。

起始的代码是这样的。

from flask import Flaskapp = Flask(__name__)@app.route('/')
def hello_world():return 'Hello World!'if __name__ == '__main__':app.run()

封装基本的支付api操作,由于该api会返回支付页面,所以无需编写支付页面,只需要处理一些简单的业务逻辑即可。

import hashlib
import timeimport requests
from flask import Flask, requestapp = Flask(__name__)MY_TEST_POINT = 0def get_app_id():return "你的app_id"def get_app_secret():return "你的app_secret"def str2bytes(data: str):try:return data.encode("UTF-8")except:return Nonedef md5(data):bdata = str2bytes(data) if isinstance(data, str) else datam = hashlib.md5()m.update(bdata)return m.hexdigest()@app.route("/")
def pay():return f"当前余额:{MY_TEST_POINT},<a href='/pay_api'>点击支付</a>"@app.route("/pay_return")
def pay_return():global MY_TEST_POINTtry:payId = request.args.get("id", None)# 拿到该id可以在数据库中进行相关操作# 比如添加积分什么的MY_TEST_POINT += 10return "支付成功,请返回页面。<a href=\"/pay\">返回页面</a>。"except Exception as err:print(err)return "支付好像出了一点问题,请返回页面。<a href=\"/pay\">返回页面</a>。"@app.route("/pay_notify")
def pay_notify():try:app_id = get_app_id()app_secret = get_app_secret()payId = request.args.get("payId", None)param = request.args.get("param", None)type = request.args.get("type", None)price = request.args.get("price", None)reallyPrice = request.args.get("reallyPrice", None)sign = request.args.get("sign", None)_sign = md5(f"{app_id}{payId}{param}{type}{price}{reallyPrice}{app_secret}")if sign != _sign:return "error_sign"return "success"except Exception as e:print(e)return "error"@app.route("/pay_api", methods=["POST"])
def pay_api():try:type = "1"  # 1表示微信支付price = 0.18  # 价格payId = "test-" + str(int(time.time()))app_id = get_app_id()app_secret = get_app_secret()param = "GOTEST"apiUrl = "https://www.gogozhifu.com/shop/api/createOrder"notifyUrl = "http://127.0.0.1:5000/pay_notify"returnUrl = "http://127.0.0.1:5000/pay_return?id=" + payIdsign = md5(f"{app_id}{payId}{param}{type}{price}{app_secret}")req = requests.post(apiUrl, headers={"App-Id": app_id,"App-Secret": app_secret}, json={'payId': payId,'param': param,'type': type,'price': price,'sign': sign,'notifyUrl': notifyUrl,'returnUrl': returnUrl,'isHtml': 1,})return req.textexcept Exception as err:print(err)return "支付好像出了一点问题,请返回页面。<a href=\"/pay\">返回页面</a>。"if __name__ == '__main__':app.run()

运行程序,看看效果

点击支付按钮,可以看到程序跳转到了gogo平台的支付页面。

用自己的微信扫描之后,发现跳转到了支付成功页面,可以看到充值成功了!

然后看自己模拟器的微信,也可以看到余额增加了10有木有!

结语

本文章献给那些想要开发自己网站的支付功能的个人站长,或者有类似需求的人。祝大家早日发财,走向人生巅峰!

声明

版权声明:本文为原创文章,版权归 DepressedBoy 所有,转载请联系博主获得授权。
本文地址:https://blog.4nmb.com//archives/175.html
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。

社区折腾日志:基于python搭建个人微信/支付宝免签支付功能相关推荐

  1. 个人微信/支付宝免签支付系统源码

    支付宝,微信免签支付, 1.不需要企业资质,不需网站认证. 2.个人账户即可收款,无需成为支付宝.微信商家, 3.无需对接第三方平台, 4.无需任何手续费,无需提现,即时收款到支付宝.微信账户, 5. ...

  2. 基于Python实现的微信小程序校园导航系统 | Python第一课环境篇 | Hellow World 程序 | 不同环境下搭建Python编程环境

    一:Hellow World 程序 1.安装Python3 2.运行Python代码片段 Python自带了一个在终端窗口中运行的解释器,让你无需保存并运行整个程序就能尝试运行Python代码片段. ...

  3. python系统-基于Python搭建Django后台管理系统

    一个好的项目数据库管理后台是必须的,今天代码君教大家搭建Django网站后台,当然做网站后台的前提是需要有Python以及Django的开发环境,至于如何搭建这些开发环境,请查看我的上一篇文章 Mac ...

  4. 用python建云盘_实用的Python(3)超简单!基于Python搭建个人“云盘”

    1 简介 当我们想要从本地向云服务器上传文件时,比较常用的有pscp等工具,但避免不了每次上传都要写若干重复的代码,而笔者最近发现的一个基于Python的工具updog,可以帮助我们在服务器上搭建类似 ...

  5. python云盘搭建教程_超简单!基于Python搭建个人“云盘”,目前最好用的个人云盘...

    超简单!基于Python搭建个人"云盘",目前最好用的个人云盘 1. 简介 当我们想要从本地向云服务器上传文件时,比较常用的有pscp等工具,但避免不了每次上传都要写若干重复的代码 ...

  6. python个人微信支付接口_Python实现微信小程序支付功能

    正文 由于最近自己在做小程序的支付,就在这里简单介绍一下讲一下用python做小程序支付这个流程.当然在进行开发之前还是建议读一下具体的流程,清楚支付的过程. 1.支付交互流程 2.获取openid( ...

  7. 基于python的土壤细菌在kobas库的功能预测代码

    以下是一个基于Python的土壤细菌在KOBAS库的功能预测代码.在运行之前,需要先安装相关的Python库,如biopython.pandas.numpy.matplotlib等. # 导入必要的库 ...

  8. python微信小程序抢购_Python实现微信小程序支付功能!Python确实强的一批!

    正文 由于最近自己在做小程序的支付,就在这里简单介绍一下讲一下用python做小程序支付这个流程.当然在进行开发之前还是建议读一下具体的流程,清楚支付的过程. 1.支付交互流程 2.获取openid( ...

  9. 基于springboot微信小程序支付功能实现

    基于springboot微信小程序支付功能实现 简单的封装微信小程序支付功能,支付工具类所依赖的fastjson.lombok.wagegger, 1.添加maven依赖: 版本号可根据自己项目的实际 ...

最新文章

  1. 3D相机D2C对齐的方法
  2. 判断子序列不同的子序列两个字符串的删除操作编辑距离
  3. 科大星云诗社动态20210427
  4. 计算机缺失esul.dll,SceneUI.ES.dll
  5. NuGet是什么?理解与使用(下)
  6. insert mysql后加where,如何在MySQL Insert語句中添加where子句?
  7. 怎样下载python模块sublime text3中_python安装环境配置、python模块添加、sublime text编辑器配置...
  8. 推动区块链基础设施建设,先要破解区块链发展“三高”难题
  9. Web前端html表格制作
  10. pixi.js 5.0_使用Pixi.js进行高级绘图
  11. 中国互联网二十年回忆
  12. rs485数据线接反_RS485引脚说明及接口说明
  13. 利用js实现手机访问PC端直接跳转wap端
  14. 微信内分享链接防红办法-微信域名防封技术系统的实现方案
  15. python中breakpoint_Python3.7 特色(2)-breakpoint 內建除錯
  16. python PIL 图片素描化
  17. Nginx+https+Trojan
  18. Leetcode解题(第974题)
  19. 【数学建模笔记】3.非线性规划
  20. 一个屌丝程序员的青春(一七二)

热门文章

  1. 37岁老将魔笛告别世界杯,海信电视向传奇致敬
  2. ubuntukylin和ubuntu有什么区别
  3. 中勒索病毒后的正确操作姿势
  4. 外挂、破解软件理论与实战
  5. M2VoC比赛论文——台湾大学
  6. earlier的意思_earlier和before都有之前的意思?有什么区别吗
  7. 顺丰2021服务器管理(python)
  8. 语音合成数据解决方案助您获取专属AI声音
  9. 再见Dubbo,不学会新的Java开发框架。你以为阿里P7能这么好拿?
  10. 模式识别(八)神经网络(BPNNCNN)识别细胞数据集