python实现微信新版v3的jsapi支付

python实现微信新版v3的jsapi支付

1、需要从公众号、商户号获取的信息

注意:在商户号的支付授权目录中需要设置好发起支付的界面url,比如我的:

复制代码
http://xxx/paypage/
python 复制代码
# 商户证书私钥,此文件不要放置在下面设置的CERT_DIR目录里。
with open('media/apiclient_key.pem') as f:
    PRIVATE_KEY = f.read()

# 商户证书序列号
CERT_SERIAL_NO = ''
# 微信支付平台证书缓存目录,初始调试的时候可以设为None,首次使用确保此目录为空目录。
CERT_DIR = './cert'
# 日志记录器,记录web请求和回调细节,便于调试排错。
logging.basicConfig(filename=os.path.join(os.getcwd(), 'textbookpay.log'), level=logging.DEBUG, filemode='a', format='%(asctime)s - %(process)s - %(levelname)s: %(message)s')
LOGGER = logging.getLogger("textbookpay")

# 接入模式:False=直连商户模式,True=服务商模式。
PARTNER_MODE = False

# 代理设置,None,详细格式参见[https://requests.readthedocs.io/en/latest/user/advanced/#proxies](https://requests.readthedocs.io/en/latest/user/advanced/#proxies)
PROXY = None
WECHAT_INFO = {
    "APPID": '' , # 公众号 APPID
    "APPSECRET": '' , # 公众号 APPSECRET
    "MCH_ID": '' , # 商户号 MCH_ID
    "API_KEY": '' , # 商户号 API_KEY
    "WXPAY_CREATE_IP": '' , # 支付的服务器公网IP
    "WXPAY_NOTIFY_URL": 'http://xxx/jsapi_notify/',  # 微信支付结果回调接口
    "GET_CODE_REDIRECT_URI": 'http://xxx/course_order/',  # 获取code后微信回调接口,就是微信系统会把code传回给你,然后通过code获取用户信息后,弹出支付页面给用户
    "WX_STATE": 'xxx', # 这个是你定义的一个签名状态信息,作为验证使用,微信会把这个值和code一起返回给你,可以通过这个来验证信息是否被篡改
    "GZH_GZ_URL": 'media/gzh.jpg', # 公众号关注链接
    "aes_encrypt_key": '' # 自定义密钥
}

WX_URLS = {
    'wx_v3_jsapi_pay' : "https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi",
    # 微信内置浏览器获取code微信接口
    'wechat_browser_code': 'https://open.weixin.qq.com/connect/oauth2/authorize',
    # 微信内置浏览器获取access_token微信接口
    'wechat_browser_access_token': 'https://api.weixin.qq.com/sns/oauth2/access_token',
    # 微信内置浏览器获取用户信息微信接口
    'wechat_browser_user_info': 'https://api.weixin.qq.com/sns/userinfo',
    # 微信内置刷新access_token微信接口
    'wechat_get_access_token': 'https://api.weixin.qq.com/sns/oauth2/refresh_token',
    # pc获取登录二维码接口
    'pc_QR_code': 'https://open.weixin.qq.com/connect/qrconnect',
    # pc获取登录二维码接口
    # 'pc_QR_code': 'https://api.weixin.qq.com/sns/userinfo',
    # 公众号的全局唯一接口调用凭据
    'wechat_access_token': 'https://api.weixin.qq.com/cgi-bin/token',
    # 获取用户基本信息(UnionID机制)
    'wechat_get_user_info': 'https://api.weixin.qq.com/cgi-bin/user/info',
    # 订单查询url
    'query_order': 'https://api.mch.weixin.qq.com/pay/orderquery',
    # 退款url
    'refund': 'https://api.mch.weixin.qq.com/secapi/pay/refund'
}

2、操作流程

1、用户打开一个链接,然后去请求微信后台获取code

2、通过code获取用户的openid与其他用户信息

3、填写号订单价格后生成二维码

4、用户扫码

5、获取到用户的openid与其他用户信息,注册

6、用户填写收货地址与手机号后点击支付

7、调起支付接口

3、代码Demo

可以找:

复制代码
@contact: 微信 1257309054
相关推荐
啊森要自信9 分钟前
【GUI自动化测试】Python 自动化测试框架 pytest 全面指南:基础语法、核心特性(参数化 / Fixture)及项目实操
开发语言·python·ui·单元测试·pytest
赵谨言20 分钟前
基于python智能家居环境质量分析系统的设计与实现
开发语言·经验分享·python·智能家居
程序员三藏1 小时前
银行测试:第三方支付平台业务流,功能/性能/安全测试方法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·安全性测试
程序员晚枫1 小时前
Python版本进化史:从3.6到3.14,每个版本都带来了什么惊喜?
python
飞哥的AI笔记1 小时前
热题精讲:字节/阿里面试真题-如何设计AI Agent的负载均衡?附完整思路
面试
程序猿小D1 小时前
【完整源码+数据集+部署教程】 【零售和消费品&存货】【无人零售】自动售卖机饮料检测系统源码&数据集全套:改进yolo11-KernelWarehouse
python·yolo·计算机视觉·目标跟踪·数据集·yolo11·自动售卖机饮料检测系统
寒怜z1 小时前
python 景区游客量统计
python
程序员晚枫1 小时前
Python 3.14发布:多解释器让性能飙升300%,GIL时代即将终结!
python
程序猿小D1 小时前
【完整源码+数据集+部署教程】 【零售和消费品&存货】条形码检测系统源码&数据集全套:改进yolo11-TADDH
python·yolo·计算机视觉·目标跟踪·数据集·yolo11·条形码检测系统
废弃的小码农2 小时前
测试基础--Day01--软件测试基础理论
python·功能测试·测试工具