def _qrwxpay(self, shop_name): import chardet order_id = self.get_cookie("order_id") order = self.session.query(models.Order).filter_by(id=order_id).first() if not order: return self.send_fail('order not found') order.is_qrwxpay = 1 #表示该订单为扫码支付 order_num = order.num totalPrice = order.new_totalprice self.session.commit() # print("[WeixinQrPay]totalPrice:",totalPrice) # shop_name = re.compile(u'[\U00010000-\U0010ffff]').sub(u'',shop_name) wxPrice = int(totalPrice * 100) url = APP_OAUTH_CALLBACK_URL + '/customer/onlinewxpay' unifiedOrder = UnifiedOrder_pub() unifiedOrder.setParameter("body", 'Order No. ' + str(order_num)) unifiedOrder.setParameter("notify_url", url) unifiedOrder.setParameter("out_trade_no", str(order.num) + 'a') unifiedOrder.setParameter('total_fee', wxPrice) unifiedOrder.setParameter('trade_type', "NATIVE") res = unifiedOrder.postXml() # print(res) if isinstance(res, bytes): bianma = chardet.detect(res)['encoding'] res = res.decode(bianma) else: print("[WeixinQrPay]encoding error") res_dict = unifiedOrder.xmlToArray(res) if 'code_url' in res_dict: qr_url = res_dict['code_url'] else: qr_url = "" return qr_url
def _qrwxpay(self,shop_name): import chardet order_id = self.get_cookie("order_id") order = self.session.query(models.Order).filter_by(id = order_id).first() if not order: return self.send_fail('order not found') order.is_qrwxpay = 1 #表示该订单为扫码支付 order_num = order.num totalPrice = order.new_totalprice self.session.commit() # print("[WeixinQrPay]totalPrice:",totalPrice) # shop_name = re.compile(u'[\U00010000-\U0010ffff]').sub(u'',shop_name) wxPrice =int(totalPrice * 100) url = APP_OAUTH_CALLBACK_URL + '/customer/onlinewxpay' unifiedOrder = UnifiedOrder_pub() unifiedOrder.setParameter("body",'Order No. '+str(order_num)) unifiedOrder.setParameter("notify_url",url) unifiedOrder.setParameter("out_trade_no",str(order.num)+'a') unifiedOrder.setParameter('total_fee',wxPrice) unifiedOrder.setParameter('trade_type',"NATIVE") res = unifiedOrder.postXml() # print(res) if isinstance(res,bytes): bianma = chardet.detect(res)['encoding'] res = res.decode(bianma) else: print("[WeixinQrPay]encoding error") res_dict = unifiedOrder.xmlToArray(res) if 'code_url' in res_dict: qr_url = res_dict['code_url'] else: qr_url = "" return qr_url
def get(self): print("Shoudn't get into this!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") order_id = self.get_cookie("order_id") order = self.session.query(models.Order).filter_by(id = order_id).first() if not order: return self.send_fail('order not found') totalPrice = order.new_totalprice wxPrice =int(totalPrice * 100) url = APP_OAUTH_CALLBACK_URL + '/customer/onlinewxpay' unifiedOrder = UnifiedOrder_pub() unifiedOrder.setParameter("body",str(order_num)) unifiedOrder.setParameter("notify_url",url) unifiedOrder.setParameter("out_trade_no",str(order.num)) unifiedOrder.setParameter('total_fee',wxPrice) unifiedOrder.setParameter('trade_type',"NATIVE") res = unifiedOrder.postXml().decode('utf-8') res_dict = unifiedOrder.xmlToArray(res) if 'code_url' in res_dict: qr_url = res_dict['code_url'] else: qr_url = "" return self.send_success(qr_url=qr_url)
def get(self): print( "Shoudn't get into this!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" ) order_id = self.get_cookie("order_id") order = self.session.query(models.Order).filter_by(id=order_id).first() if not order: return self.send_fail('order not found') totalPrice = order.new_totalprice wxPrice = int(totalPrice * 100) url = APP_OAUTH_CALLBACK_URL + '/customer/onlinewxpay' unifiedOrder = UnifiedOrder_pub() unifiedOrder.setParameter("body", str(order_num)) unifiedOrder.setParameter("notify_url", url) unifiedOrder.setParameter("out_trade_no", str(order.num)) unifiedOrder.setParameter('total_fee', wxPrice) unifiedOrder.setParameter('trade_type', "NATIVE") res = unifiedOrder.postXml().decode('utf-8') res_dict = unifiedOrder.xmlToArray(res) if 'code_url' in res_dict: qr_url = res_dict['code_url'] else: qr_url = "" return self.send_success(qr_url=qr_url)