两种方法在表单中发布

时间:2017-04-10 13:50:09

标签: laravel

我有一个外部应用程序服务,负责处理我的购物应用程序中的paiements。

我有一个表单方法发布到服务发送数据和服务valide付款交易。

 <form method="POST" action="https://paiement.systempay.fr/vads-payment/">
...
<input type="submit" name="payer" value="Payer"/></form>
</form>

我还想从我的付款控制器发布一个请求方法来更新我付款的项目

这里我的控制器希望我想在用户点击&#34;付款人&#34;还

public function postCheckoutCreditCard(Request $request)
    {
        if(!Session::has('Cart')){

            return view('shop.panier');
        }
        $oldCart = Session::get('Cart') ;
        $cart = new Cart($oldCart);
        $items = $cart->items;

        if(Input::get('payer')) {

            // on inject le nouveau statut de la licence
            foreach ($items as $item) {

                $item['item']->statut_licence_id = LicenceStatut::where('id', '4')->firstOrFail()->id;
                $item['item']->valid_licence_id = LicenceValid::where('id', '1')->firstOrFail()->id;
                $item['item']->save();

            }

            $order = new Order;
            $prefix = 'F';
            $date = Carbon::now();
            $saison = Saison::where('dt_deb', '<', $date)->where('dt_fin', '>', $date)->value('lb_saison');
            $saison_deb = substr($saison, 2, 2);
            $saison_fin = substr($saison, -2);
            $num_facture_exist = true;
            while ($num_facture_exist) {
                $num_facture = $prefix . $saison_deb . $saison_fin . substr(uniqid(rand(), true), 4, 4);
                if (!Order::where('num_facture', '=', $num_facture)->exists()) {
                    $order->num_facture = $num_facture;
                    $num_facture_exist = false;
                }
            }
            $order->structure_id = Structure::where(['id' => Auth::user()->structure->id])->firstOrFail()->id;
            $order->cart = serialize($cart);
            $order->date_achat = Carbon::now();
            $order->payment_method = 'Carte de Crédit';
            $order->etat_paiement = 'Facture Réglée';

            $order->save();

            Auth::user()->notify(new InvoicePaid($order));

            $federation = Structure::where('id', '1')->first();
            Mail::to($federation->adresse_email_structure)->send(new NouvelleCommande($order));

            Session::forget('Cart');

            return redirect('home')->with('status', "Votre paiement à été effectué avec sucess , votre numéro de facture : . $order->num_facture est disponible dans la rubrique Mes cotisation ");
        }
    }

我不知道该怎么做。有人可以帮帮我吗?提前谢谢

1 个答案:

答案 0 :(得分:0)

我会将表单操作更改为Controller,然后使用Guzzle调用外部路由。在这里查看Guzzle(http://docs.guzzlephp.org/en/latest/quickstart.html#post-form-requests)。

在您的控制器中调用类似的内容:

$response = $client->request('POST', 'https://paiement.systempay.fr/vads-payment/', [
    'form_params' => [
        'field_name' => 'abc',
    ]
]);

然后检查响应并根据它返回一些内容。