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)
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)