私はウェブ支払いフォームを作成しています。PCIによると、クレジットカード番号を保存できないため、サードパーティのAPIを使用してクレジットカード番号を暗号化しています。そのサードパーティのドキュメントによると、HTMLフォームにスクリプトを追加する必要が<script type="text/javascript" src="./-client-2.1.2.js"></script>
あります。フォームにも フォームに固有の値
<input id="txtEncryptionKey" name="txtEncryptionKey" class="_encryptionkey"
type="hidden" value="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvWpIQFjQQCPpaIlJKpeg
irp5kLkzLB1AxHmnLk73D3TJbAGqr1QmlsWDBtMPMRpdzzUM7ZwX3kzhIuATV4Pe
7RKp3nZlVmcrT0YCQXBrTwqZNh775z58GP2kZs+gVfNqBampJPzSB/hB62KkByhE
Cn6grrRjiAVwJyZVEvs/********+aE16emtX12RgI5JdzdOiNyZEQteU6zRBRJE
ocPWVxExaOpVVVJ5+UnW0LcalzA+lRGRTrQJ5JguAPiAOzRPTK/lYFFpCAl/F8wt
oAVG1c8zO2NcQ0Pko+fmeidRFxJ/did2btV+9Mkze3mBphwFmvnxa35LF+Cs/XJH
DwIDAQAB" />
そして、クレジットカード番号を暗号化したいフィールドに:
<input type="text" name="txtCreditCard" id="txtCreditCard" class="_data"
送信ボタンにも
<input type="submit" name="btn_process" value="Submit" id="btn_process" class="_submit btn btn-success">
ここに私のコード全体があります
<html>
<head>
<title>Test Page</title>
<script type="text/javascript">
</script>
<script type="text/javascript" src="./-client-2.1.2.js"></script>
</head>
<body>
<h2>Data Collection</h2><p>
<form action="process.php" method="post">
<input id="txtEncryptionKey" name="txtEncryptionKey" class="encryptionkey"
type="hidden" value="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvWpIQFjQQCPpaIlJKpeg
irp5kLkzLB1AxHmnLk73D3TJbAGqr1QmlsWDBtMPMRpdzzUM7ZwX3kzhIuATV4Pe
7RKp3nZlVmcrT0YCQXBrTwqZNh775z58GP2kZs+gVfNqBampJPzSB/hB62KkByhE
Cn6grrRjiAVwJyZVEvs/2vrxaEpO+aE16emtX12RgI5JdzdOiNyZEQteU6zRBRJE
ocPWVxExaOpVVVJ5+UnW0LcalzA+lRGRTrQJ5JguAPiAOzRPTK/lYFFpCAl/F8wt
oAVG1c8zO2NcQ0Pko+fmeidRFxJ/did2btV+9Mkze3mBphwFmvnxa35LF+Cs/XJH
DwIDAQAB" />
Name: <input type="text" name="name"><br>
Credit card number: <input type="text" name="credit" id="credit" class="_data"><br>
<input type="submit" name="btn_process" value="Submit" id="btn_process" class="_submit btn btn-success">
</form>
</body>
</html>
ここで何が起こるかというと、送信をクリックするとすぐにクレジットカード番号がJavaScriptによって取得され、ページ自体の暗号テキストに変換され、次のような一意の暗号テキストが返されます
_cipherText=EIQ4H1Tmmxb0wvyfX9HvbSg0SH0ez1GyZSZjQ8OQqKOI8wtY%2B06uq9XlsDSQdmvRtZtCwJv%2FFbo6xxQ4ClPQZN06nO%2BB8Hw3PddPFLqGtViOMCpBif9Tv0LXPy4%2FQ2L%2F5crTjVQa6WdoJABTgFlOcJ8x%2Bs%2FSSmR5Hd7R9SznfpJQp64IQ6FP%2F2ASxpU14YswgDvTumYZ%2BPElbdKG5u71snNWoQNUClWFn4d8yk6%2BaJ%2FDUGWqotpxchhOFvHMePXsdE8%2F2mGlmz5iiOSH5LlvHptenQMtTvHjBuwdMo4rnutjJ%2FRqaR3sWcndZIWYmEZ7OfA%3D%3D
PHPを使用して、この暗号を変数に格納し、Webサービスに送信する必要があります
<!DOCTYPE html>
<html>
<body>
<?php
function writeMsg()
{
echo "Hello world!";
}
//creates a token.
function Tokenize()
{
// see details here http:/.turnapi.com/docs/1.0/rest-tokenize
$_id = "763994532109974";
$api_key = "0za2fOfdWU8575BnTH";
$encrypted_data = "acAx/CwWGCURIhwf7gIw36TFmXoGFrFa5l9hCgcGEW4/mVQAAzZuT4XRjktb7XR0sAthHTuSPYegNYUy7g1stP+ypfVBcH0hNiI72N22yy3WYp0VUfAKDp33HBgUVQwg0TWAenRSNbUwC0Qv49E5bubYo4YBnERWi4JNLJZPlEQUfjMovvWQsQdFHd7U79XJZnZQdW92CKFDrTX8bCS4/n0LDEEVBILJGBnjnvKOQjQarsX8OuU6/73qpy36f9Gz3+X6IRfRhVbINNV0Seii6qSXT03NyvbERDsU/CiOrZ1tY0RuiKh4rsvCfPYrX2h67ZZ7nzrz0DeV+BYyo0e06A==";
// CC data to tokenize..
$data = array(
'ID' =>_id,
'APIKey' => $api_key,
'EncryptedData' => $encrypted_data,
'TokenScheme' => 4
);
//convert to JSON
$json = json_encode($data);
echo "Step1 done... ";
echo $json;
//curl config
$url = 'https://test-api..com:8081/TokenServices.svc/REST/TokenizeFromEncryptedValue';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json', //we are using json in this example, you could use xml as well
'Content-Length: '.strlen($json),
'Accept: application/json') //we are using json in this example, you could use xml as well
);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//call web service
$result = curl_exec($ch);
//decode result
$jsonResult = json_decode($result, true);
//handle result
if ($jsonResult['Success'] == FALSE)
{
echo "Error Message: ";
echo $jsonResult['Error'];
}
else
{
echo "your token is: ";
echo $jsonResult['Token'];
}
}
//writeMsg();
Tokenize();
?>
</body>
</html>
こちらを参照してください$encrypted_data = "acAx/CwWGCURIhwf7gIw36TFmXoGFrFa5l9hCgcGEW4/mVQAAzZuT4XRjktb7XR0sAthHTuSPYegNYUy7g1stP+ypfVBcH0hNiI72N22yy3WYp0VUfAKDp33HBgUVQwg0TWAenRSNbUwC0Qv49E5bubYo4YBnERWi4JNLJZPlEQUfjMovvWQsQdFHd7U79XJZnZQdW92CKFDrTX8bCS4/n0LDEEVBILJGBnjnvKOQjQarsX8OuU6/73qpy36f9Gz3+X6IRfRhVbINNV0Seii6qSXT03NyvbERDsU/CiOrZ1tY0RuiKh4rsvCfPYrX2h67ZZ7nzrz0DeV+BYyo0e06A=="
。送信ボタンを押したときに使用した暗号テキストが必要です。この暗号テキストを変数に取得するには、php のステートメントが必要です$encrypted_data
(現在、そこにスタンドアロン データを指定しています)。
また、一部のペイロードがJSONを使用してWebサービスに送信されているphpセクションに問題がありますが、応答を取得していないようです(つまり、token_id、apiキーを送信したWebサービスからの応答として送信されたトークン)および暗号化されたデータ
誰かがこのコードを機能させるのを助けることができますか?私は実際にphpを初めて使用し、ドキュメンテーションとオンライン手順の助けを借りてこれらすべてを行っています.この長い質問に耐えてください.初心者です.
前もって感謝します