【问题标题】:API Symfony 4 / Reactjs / Paybox - submit a form from back side and send its redirection to front side for paymentAPI Symfony 4 / Reactjs / Paybox - 从后端提交表单并将其重定向发送到前端以进行付款
【发布时间】:2019-12-13 23:09:07
【问题描述】:

我正在尝试使用 paybox 进行付款,我想在背面完成所有这些操作(Api Symfony)。 paybox文档给我们一个例子来实现这里的支付http://www1.paybox.com/espace-integrateur-documentation/la-solution-paybox-system/appel-page-paiement/

我想点击 reactjs 中的“支付”按钮,该按钮调用我的 api 路由 (symfony),在其中我使用支付箱数据呈现我的支付箱视图,我想直接提交我的表单以重定向到支付箱平台进行支付,但是我没有收到重定向响应,而是收到 html 内容页面。

我的 Paybox 控制器:

public function paybox(int $agreementId, Request $request)
    {
        $user = $this->getUser();
        $agreement = $this->agreementService->findUserAgreementByAgreementId($user->getId(), $agreementId);

        $paybox = $this->payboxService->getPayboxData($agreement);

        return $this->render('paybox/paybox.html.twig', [
           'paybox' => $paybox
        ]);
}

我的 paybox.html.twig :

<html>
    <body onload="document.payboxForm.submit()">
        <form action="{{ paybox_url }}" name="payboxForm">
            <input type="hidden" name="PBX_SITE"        value="{{ paybox.PBX_SITE }}">
            <input type="hidden" name="PBX_RANG"        value="{{ paybox.PBX_RANG }}">
            <input type="hidden" name="PBX_IDENTIFIANT" value="{{ paybox.PBX_IDENTIFIANT }}">
            <input type="hidden" name="PBX_TOTAL"       value="{{ paybox.PBX_TOTAL }}">
            <input type="hidden" name="PBX_DEVISE"      value="{{ paybox.PBX_DEVISE }}">
            <input type="hidden" name="PBX_CMD"         value="{{ paybox.PBX_CMD }}">
            <input type="hidden" name="PBX_PORTEUR"     value="{{ paybox.PBX_PORTEUR }}">
            <input type="hidden" name="PBX_RETOUR"      value="{{ paybox.PBX_RETOUR }}">
            <input type="hidden" name="PBX_HASH"        value="{{ paybox.PBX_HASH }}">
            <input type="hidden" name="PBX_TIME"        value="{{ paybox.PBX_TIME }}">
            <input type="hidden" name="PBX_HMAC"        value="{{ paybox.PBX_HMAC }}">
            <input type="hidden" name="PBX_EFFECTUE"    value="{{ paybox.PBX_EFFECTUE }}">
            <input type="hidden" name="PBX_REFUSE"      value="{{ paybox.PBX_REFUSE }}">
            <input type="hidden" name="PBX_ANNULE"      value="{{ paybox.PBX_ANNULE }}">
            <input type="submit" value="Payer">
        </form>
    </body>
</html>

我想在单击“支付”按钮时将重定向发送到我的 reactjs 应用程序。并将首页重定向到 paybox 平台。但是所有的机制都是在背面完成的。

【问题讨论】:

    标签: reactjs symfony symfony4 paybox


    【解决方案1】:

    我改变了我的做事方式。我终于删除了我的 paybox.html.twig 视图并替换为我的控制器中的重定向响应。

    我的 Paybox 控制器:

    $params = http_build_query($paybox->toArray());
    return new RedirectResponse('https://preprod-tpeweb.paybox.com/cgi/MYchoix_pagepaiement.cgi?' . $params); //paybox test url
    

    我的 Paybox 类:

        public function toArray() : array {
            return [
                'PBX_SITE' => $this->PBX_SITE,
                'PBX_RANG' => $this->PBX_RANG,
                'PBX_IDENTIFIANT' => $this->PBX_IDENTIFIANT,
                'PBX_TOTAL' => $this->PBX_TOTAL,
                'PBX_DEVISE' => $this->PBX_DEVISE,
                'PBX_CMD' => $this->PBX_CMD,
                'PBX_PORTEUR' => $this->PBX_PORTEUR,
                'PBX_RETOUR' => $this->PBX_RETOUR,
                'PBX_HASH' => $this->PBX_HASH,
                'PBX_TIME' => $this->PBX_TIME,
                'PBX_HMAC' => $this->PBX_HMAC,
                'PBX_EFFECTUE' => $this->PBX_EFFECTUE,
                'PBX_REFUSE' => $this->PBX_REFUSE,
                'PBX_ANNULE' => $this->PBX_ANNULE
            ];
        }
    

    【讨论】:

      猜你喜欢
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多