微信支付和阿里支付API对接

paymen 支付模块

目录结构

payment
│   README.md                    # 说明文档
│   __init__.py                  # 包描述(默认为空)
│   admin.py                     # 管理员
│   apps.py                      # Django-APP注册文件
│   urls.py                      # 路径
│
└───alipay
│   │   __init__.py             # 包描述(默认为空)
│   │   ali_pay.py              # 阿里支付逻辑代码(原项目为alipay.py)
│   │   alipay_config.py        # 阿里支付全局配置
│   │   alipaycore.py           # 阿里支付编码处理
│   
└───weixinpay
     │   __init__.py             # 包描述(默认为空)     
     │   wx_pay.py               # 微信支付逻辑代码(原项目为weixinpay.py,但是这个文件会跟文件夹名字冲突)
     │   weixinpay_config.py     # 微信支付全局配置
     │   weixinpaycore.py        # 微信支付编码处理

微信支付

微信支付开发者文档
GitHub原代码 源码与本博客有部分出入.

  • 采用模式二

业务流程说明:

(1)商户后台系统根据用户选购的商品生成订单。

(2)用户确认支付后调用微信支付【统一下单API】生成预支付交易;

(3)微信支付系统收到请求后生成预支付交易单,并返回交易会话的二维码链接code_url。

(4)商户后台系统根据返回的code_url生成二维码。

(5)用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。

(6)微信支付系统收到客户端请求,验证链接有效性后发起用户支付,要求用户授权。

(7)用户在微信客户端输入密码,确认支付后,微信客户端提交授权。

(8)微信支付系统根据用户授权完成支付交易。

(9)微信支付系统完成支付交易后给微信客户端返回交易结果,并将交易结果通过短信、微信消息提示用户。微信客户端展示支付交易结果页面。

(10)微信支付系统通过发送异步消息通知商户后台系统支付结果。商户后台系统需回复接收情况,通知微信后台系统不再发送该单的支付通知。

(11)未收到支付通知的情况,商户后台系统调用【查询订单API】。

(12)商户确认订单已支付后给用户发货。

其中开发者需要处理(1), (2), (4), (10), (11) 五个方面

流程(1)本模块不涉及订单生成程序,但订单生成程序函数需要向流程(2)统一下单调用程序传入两个参数:

  • 商户订单号out_trade_no
  • 交易金额total_fee

流程(2)统一预下单API需要一下参数:

appid             公众账号ID        # 公众号,需要申请,在微信支付后台产品中心APPID管理中绑定
mch_id            商户号产          # 在微信支付后台账户中心中查找
nonce_str         随机字符串        # 本模块采用 uuid
sign              签名              # 需要根据传输参数生成
body              商品描述          # 根据自己喜欢随便起
out_trade_no      商户订单号        # 需要程序调用者传入
total_fee         标价金额          # 需要程序调用者传入
notify_url        通知地址          # 回传地址,需要确认订单生成
spbill_create_ip  服务器地址        # 你的服务器地址 
limit_pay         指定支付方式      # 本模块针对 NATIVE 支付方式而编写
  1. 首先在全局配置文件weixinpay_config中配置:

    appid             公众账号ID        # 公众号,需要申请,在微信支付后台产品中心APPID管理中绑定
    mch_id            商户号产          # 在微信支付后台账户中心中查找
    body              商品描述          # 根据自己喜欢随便起
    notify_url        通知地址          # 回传地址,需要确认订单生成
    spbill_create_ip  服务器地址        # 你的服务器地址 
    limit_pay         指定支付方式      # 本模块针对 NATIVE 支付方式而编写
    key               秘钥              # 微信支付后台>账户中心>API安全>API秘钥 中设置
    

    等六个基本配置信息

  2. 在本模块中随机字符串采用的是uuid模块中的uuid4()函数生成的32位字符串(原本带四个-需要去掉)

  3. 订单生成程序调用统一下单程序时传入 商户订单号out_trade_no以及 交易金额total_fee

    def make_payment_request_wx(out_trade_no, total_fee):
        total_fee = int(float(total_fee) * 100)
        payment_info = make_payment_info(out_trade_no=out_trade_no, total_fee=total_fee)
        res = weixinpay_core.make_payment_request(payment_info)
        return res    
    
  4. 统一下单程序再调用传输参数列表

    def make_payment_info(out_trade_no=None, total_fee=None
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值