def __get_or_create_trade(self, product_order, *args, **kwargs): """ 生成支付宝支付单 :return: """ try: trade = AliPaymentTradeOrder.objects.get(order_no=product_order.order_no) return trade except AliPaymentTradeOrder.DoesNotExist: pass now = django.utils.timezone.now() out_trade_no = AliPayApi.generate_out_trade_no(product_order.user_id) trade = AliPaymentTradeOrder( out_trade_no=out_trade_no, order_no=product_order.order_no, uid=product_order.user_id, seller_id=AliPayConfig.SELLER_ID, total_fee=product_order.amount, subject=product_order.description, body=product_order.detail, start_time=now, it_b_pay=str(self.__REMAINING_SECONDS/60) + 'm' ) trade.save(force_insert=True) return trade
def __create_trade(self, product_order, pay_service_type, *args, **kwargs): """ 生成支付宝支付单 :return: """ now = django.utils.timezone.now() out_trade_no = AliPayApi.generate_out_trade_no(product_order.user_id) trade = AliPaymentTradeOrder( out_trade_no=out_trade_no, pay_service_type=pay_service_type, order_no=product_order.order_no, uid=product_order.user_id, seller_id=AliPayConfig.SELLER_ID, total_fee=product_order.amount, subject=product_order.description, body=product_order.detail, start_time=now, it_b_pay=str(self.__REMAINING_SECONDS/60) + 'm', ) if pay_service_type == 'direct_pay': trade.pay_service_type = 'directPay' elif pay_service_type == 'bank_pay': trade.pay_service_type = 'bankPay' elif pay_service_type == 'mobile': trade.pay_service_type = 'mobile' else: raise ValueError trade.save(force_insert=True) return trade