Metadata-Version: 1.1
Name: minipay
Version: 0.1.3
Summary: 微信小程序支付SDK
Home-page: https://github.com/tanjm/minipay
Author: tanjm
Author-email: tjm0510@163.com
License: MIT
Description: Minipay
        =======
        
        python版本: python3
        ^^^^^^^^^^^^^^^^^^^
        
        用django框架实现的简单demo，请参见：https://github.com/dkodoc/minipay\_demo
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        
        安装方法
        ^^^^^^^^
        
        方法1：下载压缩包，解压
        
        .. code:: bash
        
            tar -xzvf minipay-x.x.x.tar.gz
            cd minipay
            python setup.py install
        
        方法2：
        
        .. code:: bash
        
            pip install minipay
        
        config配置
        ^^^^^^^^^^
        
        在项目初始化时，要先加载minipay的配置，如在django中的settings.py中按照以下示例写入配置
        
        .. code:: python
        
            from minipay.config import MiniAppsConfig
        
            # 小程序appid
            MiniAppsConfig.APP_ID = None 
        
            # 商家mch_id
            MiniAppsConfig.MCH_ID = None 
        
            # 小程序secret
            MiniAppsConfig.SECRET = None 
        
            # 小程序随机字符串
            MiniAppsConfig.NONCE_STR = None
        
            # 小程序KEY，用于解密退款通知
            MiniAppsConfig.KEY = None 
        
            # 开发者自己的支付通知接口，比如 https://www.xxxx.com/api/notification/payment
            MiniAppsConfig.PAYMENT_NOTIFY_URL = None
        
            #开发者自己的退款通知接口,比如 https://www.xxxx.com/api/nitification/refund
            MiniAppsConfig.REFUND_NOTIFY_URL = None
        
            # 微信退款需要用到的商户证书，没有配置的话请求退款会出错
            # 详情见：https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=4_3
            # 例如
            # CERT = '/appclient.pem'
            # CERT_KEY = '/appclient_key.pem'
            # 申请退款API需要用到的商户证书本地路径，如要使用申请退款API，必须配置以下两个参数
            MiniAppsConfig.CERT = None
            MiniAppsConfig.CERT_KEY = None
        
            # 模式。参数值有ignore和store， store则必须提供ORM模型类用来保存请求和响应记录, ignore模式不保存记录
            # 该功能目前仅能保证和djangoORM兼容
            # 该参数可以在使用minipayAPI的时候再传进去，但是同时需要多加一个models参数，用于传入ORM类
            # 具体使用在示例中
            MiniAppsConfig.DEFAULT_MODE = 'ignore'
        
            # 默认的ORM模型类，可以到用的时候再填
            MiniAppsConfig.DEFAULT_MODEL = None
        
            # 默认请求方法 post or get
            MiniAppsConfig.DEFAULT_METHOD = 'post'
        
        API
        ^^^
        
        1 统一下单
        ''''''''''
        
        .. code:: python
        
            import minipay
        
            # 以下三个为必传参数
            data = {
                "out_trade_no": "2018112312321321",
                "body": "XX公司-珍珠奶茶",
                "total_fee": "700", # 这里单位是（分） 200=2元
            }
            unified = minipay.UnifiedOrder(**data)
            result = unified.request()
            if unified.is_success:
                print("请求成功")
            elif unified.is_fail:
                print("请求失败")
        
        2 订单查询
        ''''''''''
        
        .. code:: python
        
            import minipay
        
            out_trade_no = 'abv2010102333112'
            query = minipay.OrderQuery(out_trade_no=out_trade_no)
            response = query.request()
            if query.is_success:
                print(response)
                print(query.response_data)
            else:
                print(query.error)
                print(response)
        
        3 关闭订单
        ''''''''''
        
        .. code:: python
        
            import minipay
        
            close_order = minipay.CloseOrder(out_trade_no="abv2010102333112")
            close_order.request()
            if close_order.is_success:
                print(close_order.response_data)
            else:
                print(close_order.error)
        
        4 申请退款
        ''''''''''
        
        .. code:: python
        
            import minipay
        
            refund_fee = 100
            total_fee = 200
            refund = minipay.Refund(
                out_trade_no="12313123",
                total_fee=total_fee,
                refund_fee=refund_fee
                )
            response = refund.request()
            if refund.is_success:
                pass
            else:
                pass
        
        5 退款查询
        ''''''''''
        
        .. code:: python
        
            import minipay
        
            # out_trade_no，out_refund_no，transaction_id三选1
            query = minipay.RefundQuery(out_trade_no="asdasd")
            query.request()
            if query.is_success:
                pass
            else:
                pass
        
        6 支付成功通知处理
        ''''''''''''''''''
        
        .. code:: python
        
            # 支付通知处理
            # 微信发过来的是XML格式的数据，直接丢进类里面处理即可
            # django 示例
            from django.http import HttpResponse
            from models.models import PayNotice
        
            import minipay
        
            def payment_notification(request):
                notice = minipay.PaymentNotification(
                data=request.body,
                model=PayNotice,
                mode='store'
                )
                response = notice.handle()
                return HttpResponse(response, content_type='application/xml')
        
        7 退款成功通知处理
        ''''''''''''''''''
        
        .. code:: python
        
            import minipay
            from models.models import RefundNotice
            from django.http import HttpResponse
        
        
            def refund_notification(request):
                notice = minipay.RefundNotification(
                    data=request.body,
                    model=RefundNotice,
                    mode='store',
                )
                response = notice.handle()
                return HttpResponse(response, content_type='application/xml')
        
        
        BaseMiniPay
        BaseMiniPay对象，例如以上的unified、notice、close\_order等。有一些属性和方法可以使用。
        
        ###### .request()
        发起请求动作，返回\ *.response\_data*\ ，如果请求业务失败，则返回\ *.error*
        
        ###### .is\_success 请求业务是否成功，成功返回True，失败返回False。
        
        ###### .is\_fail 请求业务是否失败，是返回True，否返回False。
        
        ###### .response\_data 微信端返回的响应内容，为dict类型。
        
        ###### .error dict类型，当请求失败时，有错误码code键和错误说明desc键。{"code": "",
        "desc": ""}。 如果请求成功，则为空字典
        
        ###### .request\_data\_xml 调用\ *.request*\ 之后，再调用这个属性。它返回本次请求的内容（xml格式），一般用于在微信签名校验工具
        
        ###### .mini\_formatted() 返回一个特定格式的字典，用于给小程序wx.requestPaymentAPI调起支付。详情见：https://developers.weixin.qq.com/miniprogram/dev/api/wx.requestPayment.html
        
Keywords: wechat,minipay,mini program,pay,sdk
Platform: any
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Topic :: Text Processing :: Indexing
Classifier: Topic :: Utilities
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
