Browse Source

paypal支付增加transaction_id(交易ID)

lang 3 năm trước cách đây
mục cha
commit
549b2d66ea
1 tập tin đã thay đổi với 18 bổ sung5 xóa
  1. 18 5
      Controller/PaymentCycle.py

+ 18 - 5
Controller/PaymentCycle.py

@@ -296,8 +296,16 @@ class PaypalCycleNotify(View):
         logger.info(header)
 
         billing_agreement_id = paypal_body.get('billing_agreement_id')
+        paypal_transaction_id = paypal_body.get('id')
         amount = paypal_body.get('amount')
         if not billing_agreement_id:
+            #普通支付,更新paypal交易id
+            paymentID = paypal_body.get('parent_payment')
+            if paymentID and paypal_transaction_id:
+                Order_Model.objects.filter(paymentID=paymentID).update(
+                    updTime=int(time.time()),
+                    trade_no=paypal_transaction_id
+                )
             return HttpResponse('success')
 
         transmission_id = header.get('HTTP_PAYPAL_TRANSMISSION_ID',None)
@@ -319,11 +327,16 @@ class PaypalCycleNotify(View):
                     agreement_id = paypal_body.get('billing_agreement_id')
                     billing_agreement = paypalrestsdk.BillingAgreement.find(agreement_id)
 
-                    # 订阅续费订单(如果完成周期数`不是0, 则说明是续费订单,)
+                    # 订阅续费订单(如果完成周期数`==0,则是自动续费第一次扣款。否则说明是续费订单)
                     if billing_agreement.agreement_details.cycles_completed == '0':
                         logger.info('----billing_agreement----')
                         logger.info(billing_agreement)
                         logger.info('订阅续费订单完成周期数==0,结束')
+                        #更新order表,paypal的商家交易号
+                        Order_Model.objects.filter(orderID=billing_agreement.description).update(
+                            updTime=int(time.time()),
+                            trade_no=paypal_transaction_id
+                        )
                         return HttpResponse('success')
                     oldOrderID = billing_agreement.description
                     order_qs = Order_Model.objects.filter(orderID=oldOrderID, status=1)
@@ -410,10 +423,10 @@ class PaypalCycleNotify(View):
                         Order_Model.objects.create(orderID=orderID, UID=UID, channel=channel, userID_id=userid,
                                                    desc=order_list[0]['desc'], payType=order_list[0]['payType'], payTime=nowTime,
                                                    price=amount.get('total'), currency=order_list[0]['currency'], addTime=nowTime, updTime=nowTime,
-                                                   pay_url='', isSelectDiscounts=0,
-                                                   commodity_code=order_list[0]['commodity_code'], commodity_type=order_list[0]['commodity_type'],
-                                                   rank_id=rank, paymentID='', coupon_id='',uid_bucket_id=uid_bucket_id,status=1,
-                                                   agreement_id=agreement_id,plan_id=order_list[0]['plan_id'], ai_rank_id=1)
+                                                   pay_url='', isSelectDiscounts=0,commodity_code=order_list[0]['commodity_code'],
+                                                   commodity_type=order_list[0]['commodity_type'],rank_id=rank, paymentID='',
+                                                   coupon_id='',uid_bucket_id=uid_bucket_id,status=1,agreement_id=agreement_id,
+                                                   plan_id=order_list[0]['plan_id'], ai_rank_id=1, trade_no=paypal_transaction_id)
                         datetime = time.strftime("%Y-%m-%d", time.localtime())
                         sys_msg_text_list = ['温馨提示:尊敬的客户,您的' + UID + '设备在' + datetime + '已成功续订云存套餐',
                                              'Dear customer,you already subscribed the cloud storage package successfully for device ' + UID + ' on ' + time.strftime(