ユーザーを渡して電話デバイスから.phpページに渡しています。これは正常に動作します。次に、私はこれをのユーザ名とパスワードとし、それらが正しいかどうかをデータベースにチェックインする機能に入れています。これも問題なく動作します。次のステップは、認証が正しい場合は、送信するフォームが必要です。ログイン認証後にフォームを提出する
$login = \Fr\LS::login($user, $pass, false, false);
if($login === true){
//Some database stuff
$amount = "$price";
$id = "$num_fact";
$terminal = "01";
$moneda = "978";
$trans = "0";
$fuc = "335814141";
$urlOK = "https://www..com/.php";
$miObj = new RedsysAPI;
$miObj->setParameter("DS_MERCHANT_AMOUNT",$amount);
$miObj->setParameter("DS_MERCHANT_ORDER",$id);
$miObj->setParameter("DS_MERCHANT_MERCHANTCODE",$fuc);
$miObj->setParameter("DS_MERCHANT_CURRENCY",$moneda);
$miObj->setParameter("DS_MERCHANT_TRANSACTIONTYPE",$trans);
$miObj->setParameter("DS_MERCHANT_TERMINAL",$terminal);
$miObj->setParameter("DS_MERCHANT_MERCHANTURL",$url);
$miObj->setParameter("DS_MERCHANT_URLOK",$urlOK);
$miObj->setParameter("DS_MERCHANT_URLKO",$urlKO);
$params = $miObj->createMerchantParameters();
$claveModuloAdmin = '';
$signature = $miObj->createMerchantSignature($claveModuloAdmin);
?>
<form name="form_tpv" id="form_tpv" style="display:none" action="https://sis-t.redsys.es:/sis/realizarPago" method="POST">
<input type="text" name="Ds_SignatureVersion" value="HMAC_SHA256_V1"/>
<input type="text" name="DS_MerchantParameters" value="<?php echo $params; ?>"/>
<input type="text" name="Ds_Signature" value="<?php echo $signature; ?>"/>
<input type="submit" value="Realizar Pago"/>
</form>
<script>
setTimeout(function(){
document.getElementById('form_tpv').submit();
}, 1000);
</script>
私はタイムアウトをしようと試みたが、それはロード時に(フォームははまだにロードされる)ということで、1秒間に:そうするために、私は、フォームを送信していない、次のコードをしようと試みてきましたフォームが送信されます。
顕在: これはコードは今どのように見えるかです:
$login = \Fr\LS::login($user, $pass, false, false);
if($login === true){
$amount = "120";
$id = "gr";
$terminal = "01";
$moneda = "978";
$trans = "0";
$fuc = "335814141";
$urlOK = "https://www..com/.php";
$miObj = new RedsysAPI;
$miObj->setParameter("DS_MERCHANT_AMOUNT",$amount);
$miObj->setParameter("DS_MERCHANT_ORDER",$id);
$miObj->setParameter("DS_MERCHANT_MERCHANTCODE",$fuc);
$miObj->setParameter("DS_MERCHANT_CURRENCY",$moneda);
$miObj->setParameter("DS_MERCHANT_TRANSACTIONTYPE",$trans);
$miObj->setParameter("DS_MERCHANT_TERMINAL",$terminal);
$miObj->setParameter("DS_MERCHANT_MERCHANTURL",$url);
$miObj->setParameter("DS_MERCHANT_URLOK",$urlOK);
$miObj->setParameter("DS_MERCHANT_URLKO",$urlKO);
$params = $miObj->createMerchantParameters();
$claveModuloAdmin = '';
$signature = $miObj->createMerchantSignature($claveModuloAdmin);
$url = 'https://sis-t.redsys.es:/sis/realizarPago';
$data = array(
'Ds_SignatureVersion'=> 'HMAC_SHA256_V1',
'DS_MerchantParameters' => $params,
'Ds_Signature' => $signature
);
//url-ify the data for the POST
foreach($data as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($data));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//YOUR LINK IS HTTPS
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);`
コメントありがとうございます。しかし配列の '$ data'をすべて「https://sis-t.redsys.es:25443/sis/realizarPago」に送るにはどうすればいいですか?私はできません – alberzyzz
システムが同じでない場合は、データを送信するためにcURLを使用して、私は私の答えを編集します。 – calexandre
申し訳ありませんが、私は少し失われており、理解しようとしています。どのコードを使うべきですか? – alberzyzz