/** * 提交支付表单 * * @return Response */ public function store(Request $request) { //验证input信息 $this->validate($request, ['gateway' => 'required']); //创建订单... $orderSn = Order::createOrderSn(); $out_trade_no = $orderSn; //保存订单 //TODO //订单数据,暂时使用测试数据 $data = ['out_trade_no' => $out_trade_no, 'subject' => $out_trade_no . '号订单产品', 'total_fee' => '0.1', 'quantity' => 1, 'defaultBank' => 'CCB']; //保证金额正确性, 订单号,主题,支付金额由订单决定 $data = $data + Input::all(); //创建payway $gateway = Input::get('gateway'); Omnipay::setGateway($gateway); //数据对接-按配置参数重组数组 //如果符合则加入进新数组 $gateway = Omnipay::getGateway(); $purchaseParamKeys = Config::get('laravel-omnipay.gateways')[$gateway]['purchaseParamKeys']; $parameters = createNewKeyArray($data, $purchaseParamKeys); //获取request $resquest = Omnipay::purchase($parameters); //获取respond并跳转到第三方支付平台 $response = $resquest->send(); $response->redirect(); }