我想以一种干净的方式对薪金箱实施symfony4,但是我不确定它最适合什么。目前,我实现了一项服务, 这是服务:
public static function paymentPaybox($parameters)
{
$secretKeyTest = getenv('PBX_hmac');
$PAYBOX_DOMAIN_SERVER = "preprod-tpeweb.paybox.com";
$dateTime = date("c");
$PBX_SITE = getenv('PBX_site');
$PBX_RANG = getenv('PBX_rang');;
$PBX_IDENTIFIANT = getenv('PBX_identifiant');
$PBX_TOTAL = $parameters->getPriceTaxIncl() * 100;
$PBX_DEVISE = 978;
$PBX_CMD = "Réservation N° " . $parameters->getId();
$PBX_PORTEUR = $parameters->getUser()->getEmail();
$PBX_RETOUR = "Mt:M;Ref:R;Auto:A;Erreur:E";
$PBX_HASH = "SHA512";
$PBX_TIME = $dateTime;
$msg =
"PBX_SITE=$PBX_SITE" .
"&PBX_RANG=$PBX_RANG" .
"&PBX_IDENTIFIANT=$PBX_IDENTIFIANT" .
"&PBX_TOTAL=$PBX_TOTAL" .
"&PBX_DEVISE=$PBX_DEVISE" .
"&PBX_CMD=$PBX_CMD" .
"&PBX_PORTEUR=$PBX_PORTEUR" .
"&PBX_RETOUR=$PBX_RETOUR" .
"&PBX_HASH=$PBX_HASH" .
"&PBX_TIME=$PBX_TIME";
$binKey = pack("H*", $secretKeyTest);
$hmac = strtoupper(hash_hmac('sha512', $msg, $binKey));
$serveurs = array(
'tpeweb.paybox.com',
'tpeweb1.paybox.com'
);
$serveurOK = "";
foreach ($serveurs as $serveur) {
$doc = new \DOMDocument();
$doc->loadHTMLFile('https://' . $serveur . '/load.html');
$server_status = "";
$element = $doc->getElementById('server_status');
if ($element) {
$server_status = $element->textContent;
}
if ($server_status == "OK") {
$serveurOK = $serveur;
break;
}
}
if (!$serveurOK) {
die("Erreur : Aucun serveur n'a été trouvé");
}
?>
<form method="POST" action="https://<?php echo $PAYBOX_DOMAIN_SERVER; ?>/cgi/MYchoix_pagepaiement.cgi">
<input type="hidden" name="PBX_SITE" value="<?php echo $PBX_SITE; ?>">
<input type="hidden" name="PBX_RANG" value="<?php echo $PBX_RANG; ?>">
<input type="hidden" name="PBX_IDENTIFIANT" value="<?php echo $PBX_IDENTIFIANT; ?>">
<input type="hidden" name="PBX_TOTAL" value="<?php echo $PBX_TOTAL; ?>">
<input type="hidden" name="PBX_DEVISE" value="<?php echo $PBX_DEVISE; ?>">
<input type="hidden" name="PBX_CMD" value="<?php echo $PBX_CMD; ?>">
<input type="hidden" name="PBX_PORTEUR" value="<?php echo $PBX_PORTEUR; ?>">
<input type="hidden" name="PBX_RETOUR" value="<?php echo $PBX_RETOUR; ?>">
<input type="hidden" name="PBX_HASH" value="<?php echo $PBX_HASH; ?>">
<input type="hidden" name="PBX_TIME" value="<?php echo $PBX_TIME; ?>">
<input type="hidden" name="PBX_HMAC" value="<?php echo $hmac; ?>">
<input type="submit" value="Payer">
</form>
<?php
return true;
}
,但服务中带有付款箱形式。但是,我觉得它不干净。一个人是否在symfony4上有自己的代码示例,其中有关于该主题的建议?
谢谢您的答复。