您现在的位置是:乐刷pos官方 > 乐刷收付贝

农业银行pos机扫微信,Win10基于Vue.js+Django+Python3微信扫码支付流程

乐刷pos官方2025-04-25 03:15:24【乐刷收付贝】1人已围观

简介网上有很多关于农业银行pos机扫微信,Win10基于Vue.js+Django+Python3微信扫码支付流程的知识,也有很多人为大家解答关于农业银行pos机扫微信的问题,今天乐刷官方代理商(www.p

【温馨提示】如果您有办理pos机的需求或者疑问,可以联系官方微信 18127011016

POS机办理

网上有很多关于农业银行pos机扫微信,Win10基于Vue.js+Django+Python3微信扫码支付流程的农业知识,也有很多人为大家解答关于农业银行pos机扫微信的银行问题,今天乐刷官方代理商(www.zypos.cn)为大家整理了关于这方面的机基于知识,让我们一起来看下吧!

本文目录一览:

1、扫微农业银行pos机扫微信

农业银行pos机扫微信,Win10基于Vue.js+Django+Python3微信扫码支付流程

农业银行pos机扫微信

之前的信W信扫一篇文章:mpvue1.0+python3.7+Django2.0.4实现微信小程序的支付功能,主要介绍了微信小程序内部支付的码支流程,然而实际上微信小程序有一定的付流局限性,也就是农业用户范围仅限于小程序内部生态圈,在生活中真正具有广泛性、银行高效性、机基于使用方便性的扫微支付方式还得是扫码支付,扫码的信W信扫优点在于推广成本低,上至钓鱼台国宾馆,码支下至发廊地摊都能用,付流打印出来就完事了,农业而相比其他支付方式,现金的找零及假钞问题,信用卡的申请门槛、pos机的沉没成本,就算微信可集成的h5支付和小程序支付,奈何很多老年人根本不会用小程序和手机浏览器,更别说再进行支付操作了,所以基于二维码的扫码支付的确是非常符合国情的。

农业银行pos机扫微信,Win10基于Vue.js+Django+Python3微信扫码支付流程

本次我们使用前后端分离项目Vue.js+Django来集成微信的扫码支付功能,体验一下21世纪泛用性最高的支付方式,首先注册微信公众平台:https://mp.weixin.qq.com

获得开发者id和秘钥(appid & appsecret)

同时确保获取微信支付接口的权限:

随后注册微信支付商户平台:https://pay.weixin.qq.com/

获取微信支付的商户号(在账户信息页面):

获取微信支付接口的秘钥(账户中心->api安全):

同时在产品中心->开发配置页面,将支付域名配置好:

这里不像微信小程序,小程序只能允许https协议接口,而扫码支付域名既支持https也支持http,非常方便,同时注意域名必须是一个备案域名。

至此,微信支付的前置操作就搞定了,下面我们来编写后台接口wx_pay.py,首先导入依赖的库和一些工具方法:

import requestsfrom django.http import HttpResponse, HttpResponseRedirectimport randomimport timeimport hashlibimport qrcodefrom bs4 import BeautifulSoupdef trans_xml_to_dict(data_xml): soup = BeautifulSoup(data_xml, features='xml') xml = soup.find('xml') # 解析XML if not xml: return {} data_dict = dict([(item.name, item.text) for item in xml.find_all()]) return data_dictdef trans_dict_to_xml(data_dict): # 定义字典转XML的函数 data_xml = [] for k in sorted(data_dict.keys()): # 遍历字典排序后的key v = data_dict.get(k) # 取出字典中key对应的value if k == 'detail' and not v.startswith('<![CDATA['): # 添加XML标记 v = '<![CDATA[{}]]>'.format(v) data_xml.append('<{key}>{value}</{key}>'.format(key=k, value=v)) return '<xml>{}</xml>'.format(''.join(data_xml)) # 返回XMLdef get_sign(data_dict, key): # 签名函数,参数为签名的数据和密钥 params_list = sorted(data_dict.items(), key=lambda e: e[0], reverse=False) # 参数字典倒排序为列表 params_str = "&".join(u"{}={}".format(k, v) for k, v in params_list) + '&key=' + key # 组织参数字符串并在末尾添加商户交易密钥 md5 = hashlib.md5() # 使用MD5加密模式 md5.update(params_str.encode()) # 将参数字符串传入 sign = md5.hexdigest().upper() # 完成加密并转为大写 return sign

qrcode模块用来生成二维码,bs4模块用来将微信接口返回的xml解析成json,在21世纪的第二十个年头,微信接口居然还在使用原始的xml,这种反人类行为实在不能理解。

接下来我们来编写支付逻辑,参考微信官方文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5&index=3

业务流程说明:(1)商户后台系统根据用户选购的商品生成订单。(2)用户确认支付后调用微信支付【统一下单API】生成预支付交易;(3)微信支付系统收到请求后生成预支付交易单,并返回交易会话的二维码链接code_url。(4)商户后台系统根据返回的code_url生成二维码。(5)用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。(6)微信支付系统收到客户端请求,验证链接有效性后发起用户支付,要求用户授权。(7)用户在微信客户端输入密码,确认支付后,微信客户端提交授权。(8)微信支付系统根据用户授权完成支付交易。(9)微信支付系统完成支付交易后给微信客户端返回交易结果,并将交易结果通过短信、微信消息提示用户。微信客户端展示支付交易结果页面。(10)微信支付系统通过发送异步消息通知商户后台系统支付结果。商户后台系统需回复接收情况,通知微信后台系统不再发送该单的支付通知。(11)未收到支付通知的情况,商户后台系统调用【查询订单API】。(12)商户确认订单已支付后给用户发货。

一望而知,我们需要调用微信的统一下单接口,文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1

编写逻辑:

def wx_pay(request): url = 'https://api.mch.weixin.qq.com/pay/unifiedorder' # 微信扫码支付接口 key = '945bec

很赞哦!(84826)