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());
 }