在 Iframe Redsys 中打开网页 API
Open web page in Iframe Redsys API
我打算在我的应用程序中集成 Redsys API。所有 Api 它都是集成的,但我的问题是,在我的项目中,我需要使用 iframe 以模式打开 redsys。在我的控制器中,我有所有代码来创建对服务器的请愿书和 return 表格:
<form action="https://sis.redsys.es/sis/realizarPago" method="post" id="redsys_form" name="redsys_form" >
<input type="hidden" name="Ds_MerchantParameters" value="eyJEU19NRVJDSEFOVF9BTU9VTlQiOjEzOTkwMCwiRFNfTUVSQ0hBTlRfT1JERVIiOiIyMjAyMDIyMDAwMzciLCJEU19NRVJDSEFOVF9NRVJDSEFOVENPREUiOiI2NjgyODc5OSIsIkRTX01FUkNIQU5UX0NVUlJFTkNZIjoiOTc4IiwiRFNfTUVSQ0hBTlRfVFJBTlNBQ1RJT05UWVBFIjoiMCIsIkRTX01FUkNIQU5UX1RFUk1JTkFMIjoiMSIsIkRTX01FUkNIQU5UX1BBWU1FVEhPRFMiOiJUIiwiRFNfTUVSQ0hBTlRfTUVSQ0hBTlRVUkwiOiJodHRwczpcL1wvaW50cmFuZXQuZ3J1cG9kZWx1eGUuY29tXC9yZWRpcmVjY2lvbmVzXC9ub3RpZmljYXRpb24/aWRlbj1kMWYyN2Q0YWVlMGFjN2E3JmRhdGU9TWpBeU1pMHdNeTB4TmlBeE5qb3lNVG8xTlElM0QlM0QiLCJEU19NRVJDSEFOVF9VUkxPSyI6Imh0dHBzOlwvXC9pbnRyYW5ldC5ncnVwb2RlbHV4ZS5jb21cL2FkbWluXC9yZWRyZWRzeXNcL3VybG9rP2lkZW49ZDFmMjdkNGFlZTBhYzdhNyZkYXRlPU1qQXlNaTB3TXkweE5pQXhOam95TVRvMU5RJTNEJTNEIiwiRFNfTUVSQ0hBTlRfVVJMS08iOiJodHRwczpcL1wvaW50cmFuZXQuZ3J1cG9kZWx1eGUuY29tXC9hZG1pblwvcmVkcmVkc3lzXC91cmxrbz9pZGVuPWQxZjI3ZDRhZWUwYWM3YTcmZGF0ZT1NakF5TWkwd015MHhOaUF4TmpveU1UbzFOUSUzRCUzRCIsIkRTX01FUkNIQU5UX01FUkNIQU5UTkFNRSI6IkVESUNJT05FUyBHUlVQTyBERUxVWEUiLCJEU19NRVJDSEFOVF9USVRVTEFSIjoiTUFSVElORVogSklNRU5FWiBNQVJJQSBMVUlTQSIsIkRTX01FUkNIQU5UX1BST0RVQ1RERVNDUklQVElPTiI6IlBhZ28gY29tcGxldG8ifQ=="/>
<input type="hidden" name="Ds_Signature" value="jWWSm5xrRjxo0LoD4joa6mrBgw4rMg1t8/2nTWAjgjs="/>
<input type="hidden" name="Ds_SignatureVersion" value="HMAC_SHA256_V1"/>
<input type="submit" name="btn_submit" id="btn_submit" value="Send" >
</form>
<script>document.forms["redsys_form"].submit();</script>
我需要通过 POST
方法在我的 iframe 中打开这段代码,但是 src 它无效...在我的控制器中我有这个:
public function store(Request $request)
{
$importe = $request->get('importe');
$nomape = $request->get('nomape');
$desc = 'Pago completo';
$importe = str_replace(',', '.', $importe);
$pago = PagoTarjeta::create([
'iden' => bin2hex(random_bytes(8)),
'nomape' => $nomape,
'importe'=> $importe,
'desc' => $desc,
'id_empleado' => auth()->user()->id,
'id_estado' => 1,
'id_precontrato' => $request->has('_id_precontrato') ? $request->_id_precontrato : null
]);
/*if(!$pago) {
return redirect()->route('admin.pago_tarjeta.index')->withErrors('pago_tarjeta', 'No se ha podido crear la transacción correctamente..');
}*/
$pago->update(['norder' => config('redsys.serie.PT').str_pad($pago->id, 10, 0, STR_PAD_LEFT)]);
try {
$key = config('redsys.key');
Redsys::setAmount($importe);
Redsys::setOrder($pago->norder);
Redsys::setMerchantcode(config('redsys.merchantcode')); //Reemplazar por el código que proporciona el banco
Redsys::setCurrency(config('redsys.currency'));
Redsys::setTransactiontype('0');
Redsys::setTerminal('1');
Redsys::setMethod('T'); //Solo pago con tarjeta, no mostramos iupay
$esto = Redsys::setNotification(route('redirecciones.notification', [
'iden' => $pago->iden,
'date' => base64_encode($pago->created_at)
])); //Url de notificacion
Redsys::setUrlOk(route('admin.redredsys.urlok', [
'iden' => $pago->iden,
'date' => base64_encode($pago->created_at)
])); //Url OK
Redsys::setUrlKo(route('admin.redredsys.urlko', [
'iden' => $pago->iden,
'date' => base64_encode($pago->created_at)
])); //Url KO
Redsys::setVersion(config('redsys.version'));
Redsys::setTradeName(config('redsys.tradename'));
Redsys::setTitular($nomape);
Redsys::setProductDescription($desc);
Redsys::setEnviroment('live'); //Entorno test
$signature = Redsys::generateMerchantSignature($key);
$merchantSignature = Redsys::setMerchantSignature($signature);
$form = Redsys::executeRedirection();
}
catch(Exception $e){
echo $e->getMessage();
}
return $form;
}
我需要在我的模式中打开这个网站:
此 img 发送我的表格时 POST 和 PHP 而不是 javascript。
感谢阅读我,抱歉我的英语不好
我解决了我的问题。在我的应用程序中,我正在使用一个库,但我不知道。这个图书馆有一个方法来生成这个表格但不发送它:
$form = Redsys::createForm();
有了这个。我可以控制我所有的过程。
感谢阅读我
我打算在我的应用程序中集成 Redsys API。所有 Api 它都是集成的,但我的问题是,在我的项目中,我需要使用 iframe 以模式打开 redsys。在我的控制器中,我有所有代码来创建对服务器的请愿书和 return 表格:
<form action="https://sis.redsys.es/sis/realizarPago" method="post" id="redsys_form" name="redsys_form" >
<input type="hidden" name="Ds_MerchantParameters" value="eyJEU19NRVJDSEFOVF9BTU9VTlQiOjEzOTkwMCwiRFNfTUVSQ0hBTlRfT1JERVIiOiIyMjAyMDIyMDAwMzciLCJEU19NRVJDSEFOVF9NRVJDSEFOVENPREUiOiI2NjgyODc5OSIsIkRTX01FUkNIQU5UX0NVUlJFTkNZIjoiOTc4IiwiRFNfTUVSQ0hBTlRfVFJBTlNBQ1RJT05UWVBFIjoiMCIsIkRTX01FUkNIQU5UX1RFUk1JTkFMIjoiMSIsIkRTX01FUkNIQU5UX1BBWU1FVEhPRFMiOiJUIiwiRFNfTUVSQ0hBTlRfTUVSQ0hBTlRVUkwiOiJodHRwczpcL1wvaW50cmFuZXQuZ3J1cG9kZWx1eGUuY29tXC9yZWRpcmVjY2lvbmVzXC9ub3RpZmljYXRpb24/aWRlbj1kMWYyN2Q0YWVlMGFjN2E3JmRhdGU9TWpBeU1pMHdNeTB4TmlBeE5qb3lNVG8xTlElM0QlM0QiLCJEU19NRVJDSEFOVF9VUkxPSyI6Imh0dHBzOlwvXC9pbnRyYW5ldC5ncnVwb2RlbHV4ZS5jb21cL2FkbWluXC9yZWRyZWRzeXNcL3VybG9rP2lkZW49ZDFmMjdkNGFlZTBhYzdhNyZkYXRlPU1qQXlNaTB3TXkweE5pQXhOam95TVRvMU5RJTNEJTNEIiwiRFNfTUVSQ0hBTlRfVVJMS08iOiJodHRwczpcL1wvaW50cmFuZXQuZ3J1cG9kZWx1eGUuY29tXC9hZG1pblwvcmVkcmVkc3lzXC91cmxrbz9pZGVuPWQxZjI3ZDRhZWUwYWM3YTcmZGF0ZT1NakF5TWkwd015MHhOaUF4TmpveU1UbzFOUSUzRCUzRCIsIkRTX01FUkNIQU5UX01FUkNIQU5UTkFNRSI6IkVESUNJT05FUyBHUlVQTyBERUxVWEUiLCJEU19NRVJDSEFOVF9USVRVTEFSIjoiTUFSVElORVogSklNRU5FWiBNQVJJQSBMVUlTQSIsIkRTX01FUkNIQU5UX1BST0RVQ1RERVNDUklQVElPTiI6IlBhZ28gY29tcGxldG8ifQ=="/>
<input type="hidden" name="Ds_Signature" value="jWWSm5xrRjxo0LoD4joa6mrBgw4rMg1t8/2nTWAjgjs="/>
<input type="hidden" name="Ds_SignatureVersion" value="HMAC_SHA256_V1"/>
<input type="submit" name="btn_submit" id="btn_submit" value="Send" >
</form>
<script>document.forms["redsys_form"].submit();</script>
我需要通过 POST
方法在我的 iframe 中打开这段代码,但是 src 它无效...在我的控制器中我有这个:
public function store(Request $request)
{
$importe = $request->get('importe');
$nomape = $request->get('nomape');
$desc = 'Pago completo';
$importe = str_replace(',', '.', $importe);
$pago = PagoTarjeta::create([
'iden' => bin2hex(random_bytes(8)),
'nomape' => $nomape,
'importe'=> $importe,
'desc' => $desc,
'id_empleado' => auth()->user()->id,
'id_estado' => 1,
'id_precontrato' => $request->has('_id_precontrato') ? $request->_id_precontrato : null
]);
/*if(!$pago) {
return redirect()->route('admin.pago_tarjeta.index')->withErrors('pago_tarjeta', 'No se ha podido crear la transacción correctamente..');
}*/
$pago->update(['norder' => config('redsys.serie.PT').str_pad($pago->id, 10, 0, STR_PAD_LEFT)]);
try {
$key = config('redsys.key');
Redsys::setAmount($importe);
Redsys::setOrder($pago->norder);
Redsys::setMerchantcode(config('redsys.merchantcode')); //Reemplazar por el código que proporciona el banco
Redsys::setCurrency(config('redsys.currency'));
Redsys::setTransactiontype('0');
Redsys::setTerminal('1');
Redsys::setMethod('T'); //Solo pago con tarjeta, no mostramos iupay
$esto = Redsys::setNotification(route('redirecciones.notification', [
'iden' => $pago->iden,
'date' => base64_encode($pago->created_at)
])); //Url de notificacion
Redsys::setUrlOk(route('admin.redredsys.urlok', [
'iden' => $pago->iden,
'date' => base64_encode($pago->created_at)
])); //Url OK
Redsys::setUrlKo(route('admin.redredsys.urlko', [
'iden' => $pago->iden,
'date' => base64_encode($pago->created_at)
])); //Url KO
Redsys::setVersion(config('redsys.version'));
Redsys::setTradeName(config('redsys.tradename'));
Redsys::setTitular($nomape);
Redsys::setProductDescription($desc);
Redsys::setEnviroment('live'); //Entorno test
$signature = Redsys::generateMerchantSignature($key);
$merchantSignature = Redsys::setMerchantSignature($signature);
$form = Redsys::executeRedirection();
}
catch(Exception $e){
echo $e->getMessage();
}
return $form;
}
我需要在我的模式中打开这个网站:
此 img 发送我的表格时 POST 和 PHP 而不是 javascript。
感谢阅读我,抱歉我的英语不好
我解决了我的问题。在我的应用程序中,我正在使用一个库,但我不知道。这个图书馆有一个方法来生成这个表格但不发送它:
$form = Redsys::createForm();
有了这个。我可以控制我所有的过程。
感谢阅读我