Skip to content

ipaynowORG/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
商户订单币种类型 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 借记卡

2.2 支付结果通知

通知方式采用httppost方式通知 字段含义如下:
字段名称 字段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 借记卡

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