public function payto($id, $order_no) { $payment = PaymentModel::find($id); if (!$payment) { \App::abort(404); } $order = OrderModel::where('order_no', $order_no)->first(); if (!$order) { \App::abort(404); } $gateway = $payment->getOmniPayGateway(); $return_url = Input::getUriForPath("/pay/{$id}/return.do"); $notify_url = Input::getUriForPath("/pay/{$id}/notify.do"); $gateway->setNotifyUrl($notify_url); $gateway->setReturnUrl($return_url); if (method_exists($gateway, 'setCancelUrl')) { $cancel_url = Input::getUriForPath("/pay/{$id}/cancel.do"); $gateway->setCancelUrl($cancel_url); } # new order # db $order = array('out_trade_no' => $order->order_no, 'subject' => Config::get('laravel-payments::config.site') . ' 订单号:' . $order_no, 'total_fee' => $order->need_pay); $response = $gateway->purchase($order)->send(); # return a payto_url, and client redirect to alipay. return \Redirect::to($response->getRedirectUrl()); }