PayPalのnotify_urlに問題があります。ハンドシェイクは問題ありませんが、DBを更新するコードは機能しません。だから、デバッグするには、私はいくつかのデータを出力し、問題をどこにデバッグしてエコーしようとするreturn.php URLを使用しています。ここで PayPal notify_urlがstrcmpに合格できませんでした。確認済み
はYES、私は、私はしばらくの間、」エコー取得$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
echo "<br>test REQ: ".$req."<br><br>";;
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
if (!$fp)
{
echo "FP NOT WORKIGN";
}
else
{
echo "FP WORKIGN<br><br>";
fputs ($fp, $header . $req);
while (!feof($fp))
{
echo "whie: YES<br>";
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0)
{
echo "verified<br>";
if($status == "Completed")
{
echo "<br>####### completed<br>";
}
}
}
}
私の結果は、私はREQのエコーを取得している、私はFPワーキングのエコーを取得する(return.php上)デバッグにこれまでにやったことです"5回、しかし私は"検証済み "のエコーではありません。だから、スクリプトが合格しないようです。if (strcmp ($res, "VERIFIED") == 0)
私はこの問題をどうやって解決できますか?わからない何が悪いの
(それはデバッグに役立ちます場合)これは私の$ REQのエコーである
test: cmd=_notify-validate&mc_gross=1.00&protection_eligibility=Ineligible&payer_id=3EW5DFETD3E4L&tax=0.00&payment_date=15%3A35%3A43+Nov+14%2C+2016+PST&payment_status=Completed&charset=windows-1252&first_name=test&mc_fee=0.33¬ify_version=3.8&custom=1000%40%40Katia%40%40213+st-louis%40%40lemoyne%40%40quebec%40%40j4r+2l3%40%40Canada%40%401%40%40CAD%40%400%40%401.00&payer_status=verified&business=louisefrigon1-facilitator%40gmail.com&quantity=1&payer_email=louisefrigon1-buyer%40gmail.com&verify_sign=AFcWxV21C7fd0v3bYYYRCpSSRl31AchhgWj8TBE3e7K7SSx6jHwconuT&txn_id=6E11719159210262F&payment_type=instant&last_name=buyer&receiver_email=louisefrigon1-facilitator%40gmail.com&payment_fee=&receiver_id=LMCZ83V6LRE4S&txn_type=web_accept&item_name=Superfood+Powder&mc_currency=CAD&item_number=&residence_country=CA&test_ipn=1&handling_amount=0.00&transaction_subject=&payment_gross=&shipping=0.00&merchant_return_link=click+here&auth=A1CZ8ecFDP.O-dZHCSU6ouq8Gxn8qrDXHyoUX9qI-CEmFlvuS1Rq8FlqPmP8dCqlTffcxTJX84-huLEvRi5C.fA
私はそれを変更し、私は$ resをエコーしました。私はres = HTTP/1.0 400 Bad Requestを取得します。何故ですか ?私は間違って何をしていますか? – user3011784
わかりません。今年初めにSSLを使用するようにコードを切り替えると、HTTPプロトコルを手作業で行う代わりに 'curl'を使用してコードを書き直しました。 – Barmar
あなたが使用できるサンプルコードがありますか?もしCurlがもっと簡単なのであれば...私は気にしません。 – user3011784