- 1.0.0 : 初稿
- 1.0.1 :接口按渠道分开,增加微信支付宝外的渠道方法
- 聚合支付SDK Python版本,请使用Python3 。
使用方法:
您可以从 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
交易模块: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支付
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 | |
商户订单币种类型 | mhtCurrencyType | 156人民币 |
商户订单原单金额 | oriMhtOrderAmt | 单位(人民币):分 |
商户订单实付金额 | mhtOrderAmt | 单位(人民币):分 |
商户订单优惠金额 | discountAmt | 单位(人民币):分 |
商户订单超时时间 | mhtOrderTimeOut | 60~3600秒,默认3600 |
商户订单开始时间 | mhtOrderStartTime | yyyyMMddHHmmss |
支付成功时间 | payTime | yyyyMMddHHmmss |
商户字符编码 | mhtCharset | UTF-8 |
现在支付流水号 | nowPayOrderNo | |
设备类型 | deviceType | |
用户所选渠道类型 | payChannelType | 12-支付宝 13-微信 27-银联 04-京东 25-手Q |
交易支付状态 | transStatus | |
渠道订单号 | channelOrderNo | |
付款人账号 | payConsumerId | 微信返回sub_openid,支付宝返回buyer_user_id |
商户保留域 | mhtReserved | 给商户使用的字段,商户可以对交易进行标记,现在支付将原样返回 |
签名方法 | signType | 定值:MD5 |
数据签名 | signature | 除signature字段外,所有参数都参与MD5签名 |
银行类型 | bankType | 微信渠道返回 |
卡类型 | cardType | CREDIT 信用卡 DEBIT 借记卡 |
字段名称 | 字段Key | 备注 |
---|---|---|
功能码 | funcode | 定值:N001 |
接口版本号 | version | 定值:1.0.0 |
商户应用唯一标识 | appId | |
商户订单号 | mhtOrderNo | |
商户商品名称 | mhtOrderName | |
商户交易类型 | mhtOrderType | |
商户订单币种类型 | mhtCurrencyType | 156人民币 |
商户订单原单金额 | oriMhtOrderAmt | 单位(人民币):分 |
商户订单实付金额 | mhtOrderAmt | 单位(人民币):分 |
商户订单优惠金额 | discountAmt | 单位(人民币):分 |
商户订单超时时间 | mhtOrderTimeOut | 60~3600秒,默认3600 |
商户订单开始时间 | mhtOrderStartTime | yyyyMMddHHmmss |
支付成功时间 | payTime | yyyyMMddHHmmss |
商户字符编码 | mhtCharset | UTF-8 |
现在支付流水号 | nowPayOrderNo | |
设备类型 | deviceType | |
用户所选渠道类型 | payChannelType | |
交易支付状态 | transStatus | |
渠道订单号 | channelOrderNo | |
付款人账号 | payConsumerId | 微信返回sub_openid,支付宝返回buyer_user_id |
商户保留域 | mhtReserved | 给商户使用的字段,商户可以对交易进行标记,现在支付将原样返回 |
签名方法 | signType | 定值:MD5 |
数据签名 | signature | 除signature字段外,所有参数都参与MD5签名 |
银行类型 | bankType | 微信渠道返回 |
卡类型 | cardType | CREDIT 信用卡 DEBIT 借记卡 |
-
用户主扫支付订单查询
''' 主扫支付订单查询 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签名。 |
-
退款
''' 退款接口 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)