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


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

    后台管理

    请添加图片描述

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

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

    http://xxx/paypage/
    
    • 1
    # 商户证书私钥,此文件不要放置在下面设置的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'
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    2、操作流程

    1、用户打开一个链接,然后去请求微信后台获取code
    2、通过code获取用户的openid与其他用户信息
    3、填写号订单价格后生成二维码
    4、用户扫码
    5、获取到用户的openid与其他用户信息,注册
    6、用户填写收货地址与手机号后点击支付
    7、调起支付接口

    3、代码Demo

    可以找:

    @contact: 微信 1257309054
    
    • 1

    请添加图片描述

  • 相关阅读:
    虚拟机的发展史:从分时系统到容器化
    R语言计算时间序列数据的移动平均值(滚动平均值、例如5日均线、10日均线等):使用zoo包中的rollmean函数计算k个周期移动平均值
    Java安全之Velocity模版注入
    AI毕业论文降重GPTS,避免AI检测,高效完成论文
    【洛谷】P1082 同余方程
    shell基础(2):编程基础之变量:全局/局部/shell变量(作用域、定义、操作)、位置参数、数组
    网络安全——逻辑漏洞之越权漏洞
    python与其他编程语言的区别
    Kafka怎样完成建立和Broker之间的连接?
    区别:b、B、KB、M、MB、GB、TB、PB、EB、ZB、YB、BB以及它们之间的关系
  • 原文地址:https://blog.csdn.net/lm_is_dc/article/details/134327048