Esempio n. 1
0
 def get_prepay_id_by_unified_pay(self, **package):
     xml_data = """
         <xml>
         <appid>{appid}</appid>
         <body><![CDATA[{body}]]></body>
         <mch_id>{mch_id}</mch_id>
         <nonce_str>{nonce_str}</nonce_str>
         <notify_url>{notify_url}</notify_url>
         <openid>{openid}</openid>
         <out_trade_no>{out_trade_no}</out_trade_no>
         <spbill_create_ip>{spbill_create_ip}</spbill_create_ip>
         <total_fee>{total_fee}</total_fee>
         <trade_type>{trade_type}</trade_type>
         <sign><![CDATA[{sign}]]></sign>
         </xml>
     """
     package.update({
         "appid": self.appid,
         "mch_id": self.partner_id,
         "nonce_str": generate_token(),
     })
     # 根据参与签名参数得到签名
     sign, _ = get_sign(package, pay_sign_key=self.pay_sign_key)
     package['sign'] = sign
     # 转换xml数据
     xml_data = xml_data.format(**package)
     # 请求统一支付下单接口
     json = self.post(JSPAY_URI, data=xml_data)
     if json["return_code"] == "SUCCESS" and json["result_code"] == "SUCCESS":
         return json['prepay_id']
     return json
Esempio n. 2
0
    def jsconfig(self, **kwargs):
        """
        得到jsconfig 配置信息
        """
        json = {
            "noncestr": generate_token(),
            "jsapi_ticket": self.jsticket,
            "timestamp": self._now_time,
            "url": JSPARAMS_URI
        }
        # 根据参与签名参数得到签名
        sign_type = 'SHA1'
        sign, _ = get_sign(json, sign_type=sign_type)
        json['sign'] = sign

        json["appid"] = self.appid
        return json, sign, sign_type
Esempio n. 3
0
 def js_pay_package(self, **kwargs):
     """
     chooseWXPay 参数
     timestamp: {{ wxpay.timestamp }}, // 参与签名key为timeStamp,必须与wxconfig中的时间戳一致
     nonceStr: '{{ wxpay.nonceStr }}', // 支付签名随机串,不长于 32 位
     package: '{{ wxpay.package }}', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
     signType: '{{ wxpay.signType }}', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
     """
     # 更新默认参与签名参数
     kwargs.update({
         "appId": self.appid,
         "nonceStr": generate_token(),
         "signType": "MD5"
     })
     # 根据参与签名参数得到签名
     sign, _ = get_sign(kwargs, pay_sign_key=self.pay_sign_key)
     kwargs['paySign'] = sign
     return kwargs