我正在尝试使用付款箱付款,我想在背面(Api Symfony)进行所有这些操作。 付款箱文档为我们提供了一个在此处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应用程序。并将首页重定向到支付箱平台。但是所有的机制都在背面完成。
答案 0 :(得分:0)
我已经改变了工作方式。我终于删除了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
];
}