これに対する答えはStackoverflowのすべての質問ではないにしても多くの質問がありますが、見つけられませんでした。PayPal IPN CURLとPHPを使用したINVALIDの結果
PayPal IPNに問題があります。私はsanboxとIPN Simulatorを使ってテストしています。また、PHPとcURLを使用してPayPalからの応答を検証しています。しかし、私は応答の唯一の結果を得ています。私は検証されていないようです。
私はPayPalに完全なURLを返信していないという問題があると思います。 IPNリスナーのための私のコードを見ることができます:
<?php
require_once('../includes/main.php');
// Prepare the URL to send via cURL
$req = 'cmd=_notify-validate';
if(function_exists('get_magic_quotes_gpc')) {
$get_magic_quotes_exists = true;
}
foreach ($_POST as $key => $value) {
if($get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1) {
$value = urlencode(stripslashes($value));
} else {
$value = urlencode($value);
}
$req .= "&$key=$value";
}
// Initial cURL
$ch = curl_init();
// Set opt
curl_setopt($ch,CURLOPT_URL,"https://www.sandbox.paypal.com/cgi-bin/webscr");
//curl_setopt($ch,CURLOPT_URL,"https://www.paypal.com");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
// Return result
$result = curl_exec($ch);
// Close cURL connection
curl_close($ch);
// If condition
if(strpos($result, "VERIFIED") != false){
mysql_query("INSERT INTO paypal_ipn (ipn_message, verification) VALUES ('{$request}', '{$result}')");
}else{
mysql_query("INSERT INTO paypal_ipn (ipn_message, verification) VALUES ('{$request}', '{$result}')");
}?>
URLを比較する方法が分かっている場合は、この問題を解決する可能性があります。しかし、URLを取得する方法はわかりません。 – FarrisFahad
あなたは 'var_dump($ result)'をして、その中の内容を見ましたか? – frz3993
@ frz3993私はちょうどそれを行い、 'var_dump'はNULLに等しいです。結果はまだ無効です – FarrisFahad