浏览代码

repeat order fix

zz 6 年之前
父节点
当前提交
f0e4086f6c
共有 1 个文件被更改,包括 50 次插入0 次删除
  1. 50 0
      app/Http/Controllers/Wap/Pay/OrdersController.php

+ 50 - 0
app/Http/Controllers/Wap/Pay/OrdersController.php

@@ -1169,6 +1169,10 @@ class OrdersController extends Controller
 
 
             // 防止重复推送
             // 防止重复推送
             if (isset($order->status) && $order->status == 'PAID') {
             if (isset($order->status) && $order->status == 'PAID') {
+                if($data['chorderid'] != $order->transaction_id){
+                    Log::info('palmpay order repeat');
+                    $this->palmpaySpecial($data['chorderid'],$trade_no);
+                }
                 Log::info('has_pay:' . $trade_no);
                 Log::info('has_pay:' . $trade_no);
                 echo 'success';
                 echo 'success';
                 exit();
                 exit();
@@ -1739,4 +1743,50 @@ class OrdersController extends Controller
             }
             }
         }
         }
     }
     }
+
+    private function palmpaySpecial($transaction_id,$trade_no)
+    {
+        try{
+            $order = OrderService::getByTradeNo($trade_no);
+            $product_id = $order->product_id;
+            $product = ProductService::getProductSingle($product_id);
+            $init_order = [
+                'distribution_channel_id' => $order->distribution_channel_id,
+                'uid' => $order->uid,
+                'product_id' => $product_id,
+                'price' => $order->price,
+                'pay_type' => 1,
+                'trade_no' => $order->uid.'-'.$order->id,
+                'pay_merchant_source' => $order->pay_merchant_source,
+                'pay_merchant_id' => $order->pay_merchant_id,
+                'create_ip' => $order->create_ip,
+                'send_order_id' => $order->send_order_id,
+                'send_order_name' => $order->send_order_name,
+                'order_type' => $order->order_type,
+                'from_bid' => $order->from_bid,
+                'from_type' => $order->fromtype,
+                'activity_id' => $order->activity_id,
+                'inner_send_order_id' => $order->inner_send_order_id,
+                'status'=>'PAID',
+                'transaction_id'=>$transaction_id,
+                'pay_end_at'=>date('Y-m-d H:i:s')
+            ];
+            OrderService::save_order($init_order);
+            if ($product->type == 'YEAR_ORDER') {
+                Log::info('palmpaySpecial YEAR_ORDER');
+                $this->yearOrder($order->uid, $order->distribution_channel_id, $order->price, $order->send_order_id);
+            } elseif ($product->type == 'BOOK_ORDER') {
+                Log::info('palmpaySpecial BOOK_ORDER');
+                $this->bookOrder($product_id, $order->ui, $order->send_order_id,  $order->price, $order->distribution_channel_id);
+            } elseif ($product->type == 'TICKET_RECHARGE' || $product->type == 'NEW_USER') {
+                Log::info('palmpaySpecial TICKET_RECHARGE');
+                $this->userCharge($product, $order->uid);
+            } elseif ($product->type == 'FOREVER') {
+                Log::info('palmpaySpecial-------FOREVER');
+                $this->foreverFreeOrder($order->uid, $order->distribution_channel_id, $order->price, $order->send_order_id);
+            }
+        }catch (\Exception $e){
+
+        }
+    }
 }
 }