|  | @@ -1330,13 +1330,134 @@ class OrdersController extends Controller
 | 
	
		
			
				|  |  |          echo "success";
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    //平安银行支付回调
 | 
	
		
			
				|  |  |      function wcback_originbank(Request $request)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -        Log::info('origin bank:'.json_encode($request->all()));
 | 
	
		
			
				|  |  | -        Log::info($request->method());
 | 
	
		
			
				|  |  | -        Log::info(file_get_contents('php://input'));
 | 
	
		
			
				|  |  | +        Log::info($request->all());
 | 
	
		
			
				|  |  | +        Log::info('wcback_palmpay_request');
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            $data = $request->except('_url');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        echo 'success';
 | 
	
		
			
				|  |  | +            //订单
 | 
	
		
			
				|  |  | +            $trade_no = $data['out_no'];
 | 
	
		
			
				|  |  | +            $order = OrderService::getByTradeNo($trade_no);
 | 
	
		
			
				|  |  | +            if (!$order) die('failed');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 防止重复推送
 | 
	
		
			
				|  |  | +            if (isset($order->status) && $order->status == 'PAID') {
 | 
	
		
			
				|  |  | +                Log::info('has_pay:' . $trade_no);
 | 
	
		
			
				|  |  | +                echo 'success';
 | 
	
		
			
				|  |  | +                exit();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            $pay_merchant = DB::table('pay_merchants')->select('appid', 'source', 'config_info')->where('id', $order->pay_merchant_id)->first();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //校验签名
 | 
	
		
			
				|  |  | +//            $sign = _sign($data, json_decode($pay_merchant->config_info, 1)['appKey']);
 | 
	
		
			
				|  |  | +//            if ($sign != $data['sign']) die('failed');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            $trade_result = json_decode($data['trade_result'],true);
 | 
	
		
			
				|  |  | +            $transaction_id = $trade_result['transaction_id'];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if ($data['status'] == 'success') {
 | 
	
		
			
				|  |  | +                Log::info('wcback_palmpay_notify_sign_success');
 | 
	
		
			
				|  |  | +                // 修改表比较多,开启事务
 | 
	
		
			
				|  |  | +                DB::beginTransaction();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                $uid = $order->uid;
 | 
	
		
			
				|  |  | +                $distribution_channel_id = $order->distribution_channel_id;
 | 
	
		
			
				|  |  | +                $product_id = $order->product_id;
 | 
	
		
			
				|  |  | +                $product = ProductService::getProductSingle($product_id);
 | 
	
		
			
				|  |  | +                $send_order_id = $order->send_order_id;
 | 
	
		
			
				|  |  | +                $price = $product->price;
 | 
	
		
			
				|  |  | +                Log::info('save_order_end');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                Log::info($product);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                Log::info('product_type:' . $product->type);
 | 
	
		
			
				|  |  | +                $prize_fee = (int)(($product->price * 100) * 0.1);
 | 
	
		
			
				|  |  | +                $this->substituteOrderPrice($order->id, $prize_fee);
 | 
	
		
			
				|  |  | +                $this->smartPushTestBookPaidUv($order->from_bid, $order->uid, $order->price);
 | 
	
		
			
				|  |  | +                //获取用户充值次数
 | 
	
		
			
				|  |  | +                $order->pay_type = $this->getChargeTimes($order->uid);
 | 
	
		
			
				|  |  | +                // 更新其他定制Order表
 | 
	
		
			
				|  |  | +                if ($product->type == 'YEAR_ORDER') {
 | 
	
		
			
				|  |  | +                    Log::info('YEAR_ORDERYEAR_ORDERYEAR_ORDERYEAR_ORDERYEAR_ORDERYEAR_ORDERYEAR_ORDERYEAR_ORDER');
 | 
	
		
			
				|  |  | +                    $order_type = 'YEAR';
 | 
	
		
			
				|  |  | +                    $this->yearOrder($uid, $distribution_channel_id, $price, $send_order_id);
 | 
	
		
			
				|  |  | +                    $order->order_type = $order_type;
 | 
	
		
			
				|  |  | +                    $order->status = 'PAID';
 | 
	
		
			
				|  |  | +                    $order->pay_end_at = date('Y-m-d H:i:s');
 | 
	
		
			
				|  |  | +                    $order->transaction_id = $transaction_id;
 | 
	
		
			
				|  |  | +                    $order->save();
 | 
	
		
			
				|  |  | +                } elseif ($product->type == 'BOOK_ORDER') {
 | 
	
		
			
				|  |  | +                    Log::info('BOOK_ORDERBOOK_ORDERBOOK_ORDERBOOK_ORDERBOOK_ORDERBOOK_ORDERBOOK_ORDERBOOK_ORDER');
 | 
	
		
			
				|  |  | +                    $order_type = 'BOOK';
 | 
	
		
			
				|  |  | +                    $this->bookOrder($product_id, $uid, $send_order_id, $price, $distribution_channel_id);
 | 
	
		
			
				|  |  | +                    $order->order_type = $order_type;
 | 
	
		
			
				|  |  | +                    $order->status = 'PAID';
 | 
	
		
			
				|  |  | +                    $order->pay_end_at = date('Y-m-d H:i:s');
 | 
	
		
			
				|  |  | +                    $order->transaction_id = $transaction_id;
 | 
	
		
			
				|  |  | +                    $order->save();
 | 
	
		
			
				|  |  | +                } elseif ($product->type == 'TICKET_RECHARGE' || $product->type == 'NEW_USER') {
 | 
	
		
			
				|  |  | +                    Log::info('TICKET_RECHARGETICKET_RECHARGETICKET_RECHARGETICKET_RECHARGETICKET_RECHARGE');
 | 
	
		
			
				|  |  | +                    $order_type = 'RECHARGE';
 | 
	
		
			
				|  |  | +                    $this->userCharge($product, $uid);
 | 
	
		
			
				|  |  | +                    $order->order_type = $order_type;
 | 
	
		
			
				|  |  | +                    $order->status = 'PAID';
 | 
	
		
			
				|  |  | +                    $order->pay_end_at = date('Y-m-d H:i:s');
 | 
	
		
			
				|  |  | +                    $order->transaction_id = $transaction_id;
 | 
	
		
			
				|  |  | +                    $order->save();
 | 
	
		
			
				|  |  | +                } elseif ($product->type == 'FOREVER') {
 | 
	
		
			
				|  |  | +                    Log::info('FOREVER------------------------FOREVER');
 | 
	
		
			
				|  |  | +                    $order_type = 'FOREVER';
 | 
	
		
			
				|  |  | +                    $this->foreverFreeOrder($uid, $distribution_channel_id, $price, $send_order_id);
 | 
	
		
			
				|  |  | +                    $order->order_type = $order_type;
 | 
	
		
			
				|  |  | +                    $order->status = 'PAID';
 | 
	
		
			
				|  |  | +                    $order->pay_end_at = date('Y-m-d H:i:s');
 | 
	
		
			
				|  |  | +                    $order->transaction_id = $transaction_id;
 | 
	
		
			
				|  |  | +                    $order->save();
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                $this->successPayPushMsg($uid, $product, $order->id);
 | 
	
		
			
				|  |  | +                $this->orderStatistical($order);
 | 
	
		
			
				|  |  | +                DB::commit();
 | 
	
		
			
				|  |  | +                //redis 删除未支付的uid
 | 
	
		
			
				|  |  | +                try {
 | 
	
		
			
				|  |  | +                    $key = 'leyuee:to_send_not_pay_uid:distribution_channel_id:' . $distribution_channel_id;
 | 
	
		
			
				|  |  | +                    Redis::hdel($key, $uid);
 | 
	
		
			
				|  |  | +                } catch (\Exception $e) {
 | 
	
		
			
				|  |  | +                    Log::info('redis remote error-----------------------');
 | 
	
		
			
				|  |  | +                    Log::info($e);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                // 注册动作-》回调订单
 | 
	
		
			
				|  |  | +                $action_type = 'CallBackOrder';
 | 
	
		
			
				|  |  | +                $param = [
 | 
	
		
			
				|  |  | +                    'order_sn' => isset($trade_no) ? $trade_no : '0',
 | 
	
		
			
				|  |  | +                    'openid' => isset($uid) ? $uid : '0',// 没有openid,用uid写log
 | 
	
		
			
				|  |  | +                ];
 | 
	
		
			
				|  |  | +                UserService::PushUserActionToQueue($action_type, $distribution_channel_id, $param);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                $this->userProperty($uid,$price,$product->type,$order->activity_id);
 | 
	
		
			
				|  |  | +                $this->huaweiActivity($order->activity_id,$uid,$product_id);
 | 
	
		
			
				|  |  | +                //交换订单时间
 | 
	
		
			
				|  |  | +                $this->exchangeUpdateAndCreated($order->id);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            }else {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                Log::info('wcback_palmpay_notify_sign_fail');
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } catch (\Exception $e) {
 | 
	
		
			
				|  |  | +            var_dump($e->getMessage());
 | 
	
		
			
				|  |  | +            DB::rollBack();
 | 
	
		
			
				|  |  | +            Log::info('receive_wcback_palmpay_ept:' . $e->getMessage());
 | 
	
		
			
				|  |  | +            echo 'fail';
 | 
	
		
			
				|  |  | +            Log::info('pay_callback_end error');
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        Log::info('pay_callback_end');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        echo "success";
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 |