Пример #1
0
    def auth(self, txnamt, orderid, front_url=None, **kwargs):
        data = {
            'version': self.version,
            'encoding': self.encoding,
            'signMethod': self.signMethod,
            'txnType': TradeType.auth,
            'txnSubType': '01',
            'bizType': '000201',
            'channelType': ChannelType.Mobile,
            'backUrl': self.config.backend_url,
            'accessType': '0',
            'merId': self.config.merchant_id,
            'orderId': orderid,
            'txnTime': self.get_txn_time(),
            'txnAmt': txnamt,
            'currencyCode': '156',
            'customerIp': kwargs.get('customer_ip'),
            'orderDesc': kwargs.get('order_desc')
        }

        if not front_url:
            raise error.UnionpayError('must set front_url when desktop')

        data.update(frontUrl=front_url)
        data = self.signer.filter_params(data)
        sign_result = self.signer.sign(data)
        if not sign_result:
            raise error.UnionpayError('Sign data error')
        data['signature'] = data['signature'].decode('utf-8')
        return make_submit_form(data, self.config.front_trans_url)
Пример #2
0
    def pay(self, txnamt, orderid, currency_code='156', biz_type="000201", front_url=None, **kwargs):
        order_time = kwargs.get('order_time')
        expire_minutes = kwargs.get('expire_minutes')
        data = {
            'version': self.version,
            'encoding': self.encoding,
            'signMethod': self.signMethod,
            'txnType': TradeType.pay,
            'txnSubType': '01',
            'bizType': biz_type,
            'channelType': ChannelType.Desktop,
            'backUrl': self.config.backend_url,
            'accessType': '0',
            'merId': self.config.merchant_id,
            'orderId': orderid,
            'txnTime': self.get_txn_time(),
            'txnAmt': txnamt,
            'currencyCode': currency_code,
            'payTimeout': self.get_timeout(order_time, expire_minutes),
            'customerIp': kwargs.get('customer_ip'),
            'orderDesc': kwargs.get('order_desc')
        }
        logger.debug('[REQ-PAY]%s' % data)

        if not front_url:
            raise error.UnionpayError('must set front_url when desktop')

        data.update(frontUrl=front_url)
        data = self.signer.filter_params(data)
        sign_result = self.signer.sign(data)
        if not sign_result:
            raise error.UnionpayError('Sign data error')
        data['signature'] = data['signature'].decode('utf-8')
        return make_submit_form(data, self.config.front_trans_url)