1

支払いゲートウェイを使用してクレジット カードを処理しています。データをサーバーに POST するために、PHP で cURL を使用しています。すべての POST されたデータが暗号化されるように、SSL 証明書をドメインに発行しています。SSL 証明書が既にインストールされているため、cURL に SSL オプションを使用する必要がありますか? もしそうなら、どのオプションを設定する必要がありますか?

次のコードを試してみましたが失敗しました:

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL,"https://secure.paymentgateway.com/blah.php");
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 

curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_CAINFO,  getcwd().'/cert/ca.crt');
curl_setopt($ch, CURLOPT_SSLCERT, getcwd().'/cert/mycert.pem');
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, 'password');

curl_setopt($ch, CURLOPT_POST, $count);

curl_setopt($ch,CURLOPT_POSTFIELDS,"variables...");                                                                 

$output = curl_exec($ch);
echo $output;
curl_close($ch);
4

1 に答える 1

1

すでに検証を無効にしています (これはお勧めしません: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);)。これにより、中間者攻撃が可能になります。

これはあなたを助けるかもしれない簡単なチュートリアルです:

http://developer.paypal-portal.com/pdn/board/message?board.id=ipn&message.id=12754#M12754

于 2009-07-16T18:48:40.243 に答える