Skip to content

sankyson/ipaynow_pay_python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

29 Commits

Repository files navigation

聚合支付SDK使用说明

版本变更记录

  • 1.0.0 : 初稿
  • 1.0.1 :接口按渠道分开,增加微信支付宝外的渠道方法

目录

1. 概述

1.1 简介

1.2 如何获取

1.3 使用说明

2. API

2.1 聚合交易API

微信被扫支付

支付宝被扫支付

手Q被扫支付

京东被扫支付

银联被扫支付

微信主扫支付

支付宝主扫支付

手Q主扫支付

京东主扫支付

银联主扫支付

微信公众号支付

支付宝公众号支付

手Q公众号支付

微信H5

支付宝H5

银联H5

招行一网通H5

手Q H5

支付宝网页web

银联网页web

微信小程序支付

2.2 支付结果通知

2.3 订单查询API

用户主扫支付订单查询

用户被扫支付订单查询

商户公众号支付订单查询

商户H5支付订单查询

商户网页支付订单查询

商户微信App支付订单查询

2.4 退款API

退款

退款查询

撤销

撤销查询

1. 概述

1.1 简介

  • 聚合支付SDK Python版本,请使用Python3 。

1.2 如何获取

demo源码

1.3 使用说明

使用方法:

您可以从 GitHub 上下载 Python SDK 的源代码:

git clone https://github.com/ipaynowORG/ipaynow_pay_python.git 1.cd 进入ipaynowPythonSdk 文件夹 2.执行 "python setup.py install" 3.在代码中 import ipaynow 参考示例代码 示例代码 cd 进入example文件夹 运行 python tradeTest.py 

2. API

2.1 聚合交易API

交易模块:trade.py

  • 微信被扫支付

     ''' 微信被扫支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) channelAuthCode ; 支付授权码 isTest 是否测试 True 测试环境 False 生产环境 ''' def wx_trade05(appId,appKey,ordername,mhtOrderDetail,notifyUrl,channelAuthCode,amt = "1", orderno = '',isTest=True): 
  • 支付宝被扫支付

     ''' 支付宝被扫支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) channelAuthCode ; 支付授权码 isTest 是否测试 True 测试环境 False 生产环境 ''' def ali_trade05(appId,appKey,ordername,mhtOrderDetail,notifyUrl,channelAuthCode,amt = "1", orderno = '',isTest=True): 
  • 手Q被扫支付

     ''' 手Q被扫支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) channelAuthCode ; 支付授权码 isTest 是否测试 True 测试环境 False 生产环境 ''' def handq_trade05(appId,appKey,ordername,mhtOrderDetail,notifyUrl,channelAuthCode,amt = "1", orderno = '',isTest=True): 
  • 京东被扫支付

     ''' 京东被扫支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) channelAuthCode ; 支付授权码 isTest 是否测试 True 测试环境 False 生产环境 ''' def jd_trade05(appId,appKey,ordername,mhtOrderDetail,notifyUrl,channelAuthCode,amt = "1", orderno = '',isest=True) 
  • 银联被扫支付

     ''' 银联被扫支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) channelAuthCode ; 支付授权码 isTest 是否测试 True 测试环境 False 生产环境 ''' def union_trade05(appId,appKey,ordername,mhtOrderDetail,notifyUrl,channelAuthCode,amt = "1", orderno = '',isTest) 
  • 微信主扫支付

     ''' 微信主扫支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0 返回二维码串 1 返回支付链接 isTest 是否测试 True 测试环境 False 生产环境 ''' def wx_trade08(appId,appKey,ordername,mhtOrderDetail,notifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 支付宝主扫支付

     ''' 支付宝主扫支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0 返回二维码串 1 返回支付链接 isTest 是否测试 True 测试环境 False 生产环境 ''' def ali_trade08(appId,appKey,ordername,mhtOrderDetail,notifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 手Q主扫支付

     ''' 手Q主扫支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0 返回二维码串 1 返回支付链接 isTest 是否测试 True 测试环境 False 生产环境 ''' def handq_trade08(appId,appKey,ordername,mhtOrderDetail,notifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 京东主扫支付

     ''' 京东主扫支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0 返回二维码串 1 返回支付链接 isTest 是否测试 True 测试环境 False 生产环境 ''' def jd_trade08(appId,appKey,ordername,mhtOrderDetail,notifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 银联主扫支付

     ''' 银联主扫支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0 返回二维码串 1 返回支付链接 isTest 是否测试 True 测试环境 False 生产环境 ''' def union_trade08(appId,appKey,ordername,mhtOrderDetail,notifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 微信公众号支付

     ''' 微信公众号支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL frontNotifyUrl :商户前台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0-公众号0模式 isTest 是否测试 True 测试环境 False 生产环境 ''' def wx_trade0600(appId,appKey,ordername,mhtOrderDetail,notifyUrl,frontNotifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 支付宝公众号支付

     ''' 支付宝公众号支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL frontNotifyUrl :商户前台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0-公众号0模式 isTest 是否测试 True 测试环境 False 生产环境 ''' def ali_trade0600(appId,appKey,ordername,mhtOrderDetail,notifyUrl,frontNotifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 手Q公众号支付

     ''' 手Q公众号支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL frontNotifyUrl :商户前台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0-公众号0模式 isTest 是否测试 True 测试环境 False 生产环境 ''' def handq_trade0600(appId,appKey,ordername,mhtOrderDetail,notifyUrl,frontNotifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 微信H5

     ''' 微信H5支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL frontNotifyUrl :商户前台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0-公众号0模式 isTest 是否测试 True 测试环境 False 生产环境 ''' def wx_trade0601(appId,appKey,ordername,mhtOrderDetail,notifyUrl,frontNotifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 支付宝H5

     ''' 支付宝H5支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL frontNotifyUrl :商户前台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0-公众号0模式 isTest 是否测试 True 测试环境 False 生产环境 ''' def ali_trade0601(appId,appKey,ordername,mhtOrderDetail,notifyUrl,frontNotifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 银联H5

     ''' 银联H5支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL frontNotifyUrl :商户前台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0-公众号0模式 isTest 是否测试 True 测试环境 False 生产环境 ''' def union_trade0601(appId,appKey,ordername,mhtOrderDetail,notifyUrl,frontNotifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
- 招行一网通H5
 ''' 招行一网通 H5支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL frontNotifyUrl :商户前台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0-公众号0模式 isTest 是否测试 True 测试环境 False 生产环境 ''' def cmbywt_trade0601(appId,appKey,ordername,mhtOrderDetail,notifyUrl,frontNotifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 手Q H5

     ''' 手Q H5支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL frontNotifyUrl :商户前台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType ; 0-公众号0模式 isTest 是否测试 True 测试环境 False 生产环境 ''' def handq_trade0601(appId,appKey,ordername,mhtOrderDetail,notifyUrl,frontNotifyUrl,outputType,amt = "1", orderno = '',isTest=True) 
  • 支付宝网页web

     ''' 支付宝网页web支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL frontNotifyUrl :商户前台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType:0.返回支付跳转链接 2.返回支付页面(html) isTest 是否测试 True 测试环境 False 生产环境 ''' def ali_trade04(appId,appKey,ordername,mhtOrderDetail,notifyUrl,frontNotifyUrl,amt = "1", orderno = '',outputType=0,isTest=True) 
  • 银联网页web

     ''' 银联网页web支付 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 notifyUrl:商户后台通知URL frontNotifyUrl :商户前台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) outputType:0.返回支付跳转链接 2.返回支付页面(html) isTest 是否测试 True 测试环境 False 生产环境 ''' def union_trade04(appId,appKey,ordername,mhtOrderDetail,notifyUrl,frontNotifyUrl,amt = "1", orderno = '',outputType=0,isTest=True) 
  • 微信小程序支付

     ''' 微信小程序 appId:商户应用id appKey:商户应用秘钥 mhtOrderDetail:订单详情 oriMhtOrderAmt:原始金额 discountAmt:优惠金额 notifyUrl:商户后台通知URL frontNotifyUrl :商户前台通知URL amt:订单金额单位分,默认1分 orderno:订单号(默认系统时间) isTest 是否测试 True 测试环境 False 生产环境 ''' def wx_app(appId,appKey,ordername,mhtOrderDetail,notifyUrl,frontNotifyUrl,oriMhtOrderAmt,discountAmt,amt = "1", orderno = '',isTest=True) 

下单接口字段含义如下:

字段名称字段Key备注
功能码funcode定值:N001
接口版本号version定值:1.0.0
商户应用唯一标识appId
商户订单号mhtOrderNo
商户商品名称mhtOrderName
商户交易类型mhtOrderType
商户订单币种类型mhtCurrencyType156人民币
商户订单原单金额oriMhtOrderAmt单位(人民币):分
商户订单实付金额mhtOrderAmt单位(人民币):分
商户订单优惠金额discountAmt单位(人民币):分
商户订单超时时间mhtOrderTimeOut60~3600秒,默认3600
商户订单开始时间mhtOrderStartTimeyyyyMMddHHmmss
支付成功时间payTimeyyyyMMddHHmmss
商户字符编码mhtCharsetUTF-8
现在支付流水号nowPayOrderNo
设备类型deviceType
用户所选渠道类型payChannelType12-支付宝 13-微信 27-银联 04-京东 25-手Q
交易支付状态transStatus
渠道订单号channelOrderNo
付款人账号payConsumerId微信返回sub_openid,支付宝返回buyer_user_id
商户保留域mhtReserved给商户使用的字段,商户可以对交易进行标记,现在支付将原样返回
签名方法signType定值:MD5
数据签名signature除signature字段外,所有参数都参与MD5签名
银行类型bankType微信渠道返回
卡类型cardTypeCREDIT 信用卡 DEBIT 借记卡

2.2 支付结果通知

通知方式采用httppost方式通知 字段含义如下:
字段名称字段Key备注
功能码funcode定值:N001
接口版本号version定值:1.0.0
商户应用唯一标识appId
商户订单号mhtOrderNo
商户商品名称mhtOrderName
商户交易类型mhtOrderType
商户订单币种类型mhtCurrencyType156人民币
商户订单原单金额oriMhtOrderAmt单位(人民币):分
商户订单实付金额mhtOrderAmt单位(人民币):分
商户订单优惠金额discountAmt单位(人民币):分
商户订单超时时间mhtOrderTimeOut60~3600秒,默认3600
商户订单开始时间mhtOrderStartTimeyyyyMMddHHmmss
支付成功时间payTimeyyyyMMddHHmmss
商户字符编码mhtCharsetUTF-8
现在支付流水号nowPayOrderNo
设备类型deviceType
用户所选渠道类型payChannelType
交易支付状态transStatus
渠道订单号channelOrderNo
付款人账号payConsumerId微信返回sub_openid,支付宝返回buyer_user_id
商户保留域mhtReserved给商户使用的字段,商户可以对交易进行标记,现在支付将原样返回
签名方法signType定值:MD5
数据签名signature除signature字段外,所有参数都参与MD5签名
银行类型bankType微信渠道返回
卡类型cardTypeCREDIT 信用卡 DEBIT 借记卡

2.3 订单查询API

模块:queryOrder.py
  • 用户主扫支付订单查询

    ''' 主扫支付订单查询 appId:商户应用id appKey:商户应用秘钥 orderno:订单号 isTest 是否测试 True 测试环境 False 生产环境 ''' def query08(appId,appKey,orderno,isTest=True) 
  • 用户被扫支付订单查询

    ''' 主扫支付订单查询 appId:商户应用id appKey:商户应用秘钥 orderno:订单号 isTest 是否测试 True 测试环境 False 生产环境 ''' def query05(appId,appKey,orderno,isTest=True) 
  • 公众号支付订单查询

    ''' 公众号订单查询 appId:商户应用id appKey:商户应用秘钥 orderno:订单号 isTest 是否测试 True 测试环境 False 生产环境 ''' def query0600(appId,appKey,orderno,isTest=True) 
  • H5支付订单查询

    ''' H5支付订单查询 appId:商户应用id appKey:商户应用秘钥 orderno:订单号 isTest 是否测试 True 测试环境 False 生产环境 ''' def query0601(appId,appKey,orderno,isTest=True) 
  • 网页支付订单查询

    ''' 网页支付订单查询 appId:商户应用id appKey:商户应用秘钥 orderno:订单号 isTest 是否测试 True 测试环境 False 生产环境 ''' def query04(appId,appKey,orderno,isTest=True) 
  • 小程序支付订单查询

    ''' 小程序支付订单查询 appId:商户应用id appKey:商户应用秘钥 orderno:订单号 isTest 是否测试 True 测试环境 False 生产环境 ''' def query14(appId,appKey,orderno,isTest=True) 

订单查询接口字段含义如下: 接口接入URL:https://pay.ipaynow.cn/ 请求类型:POST

字段名称字段Key备注
功能码funcode定值:MQ002
接口版本号version定值:1.0.0
商户应用唯一标识appId
设备类型deviceType
商户订单号mhtOrderNo
商户字符集mhtCharset定值:UTF-8
签名方法mhtSignType定值:MD5
数据签名mhtSignature除mhtSignature字段外,所有参数都参与MD5签名。

2.4 退款API

模块:refund.py
  • 退款

     ''' 退款接口 appId:商户应用id appKey:商户应用秘钥 orderno:原订单号 mhtRefundNo:商户退款单号 amount:商户退款金额 reason:退款原因 isTest 是否测试 True 测试环境 False 生产环境s ''' def refund(appId,appKey,orderno,mhtRefundNo,amount,reason,isTest=True) 
  • 退款查询

     ''' 退款查询 appId:商户应用id appKey:商户应用秘钥 mhtRefundNo:商户退款单号 isTest 是否测试 True 测试环境 False 生产环境 ''' def refundQuery(appId,appKey,mhtRefundNo,isTest=True) 
  • 撤销

     ''' 撤销接口 appId:商户应用id appKey:商户应用秘钥 orderno:原订单号 mhtRefundNo:商户退款单号 reason:撤销原因 isTest 是否测试 True 测试环境 False 生产环境 ''' def backOrder(appId,appKey,orderno,mhtRefundNo,reason,isTest=True) 
  • 撤销查询

     ''' 撤销查询接口 appId:商户应用id appKey:商户应用秘钥 mhtRefundNo:商户退款单号 isTest 是否测试 True 测试环境 False 生产环境 ''' def backOrderQuery(appId,appKey,mhtRefundNo,isTest=True) 

About

现在支付 聚合支付 SDK for python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python100.0%