예제 #1
0
 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
예제 #2
0
	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
예제 #3
0
	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)
예제 #4
0
 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)