0

以下は私が使用している私のコードです:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->paypal_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
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_HTTPHEADER, array('Host: ' . $url_parsed['host']));
$res = curl_exec($ch);
curl_close($ch);

this->paypal_urlはサンドボックスapiurlであり、url_parsed ['host']はサンドボックスペイパルホスト名です。これらは両方とも正しいですが、私が抱えている問題は、すべての呼び出しで$resが常に空であるということです。

ペイパル開発者サイトからこのコードを取得する前に、私は次のコードを使用していました:

$fp = fsockopen('ssl://' . $url_parsed['host'],"443",$err_num,$err_str,30);
fputs($fp, "POST $url_parsed[path] HTTP/1.1\r\n"); 
fputs($fp, "Host: $url_parsed[host]\r\n"); 
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); 
fputs($fp, "Content-length: ".strlen($post_string)."\r\n"); 
fputs($fp, "Connection: close\r\n\r\n"); 
fputs($fp, $post_string . "\r\n\r\n"); 

ソケットを開けませんでしたエラーが発生しました。

sslを使用する前は、次のコード行を使用していました。$ fp = fsockopen($ url_parsed ['host']、 "80"、$ err_num、$ err_str、30);

私はこの応答を得ていました:

Server:
 HTTP/1.0 302 Moved Temporarily
Location: https://www.sandbox.paypal.com
Server: BigIP
Content-Length: 0
X-Cache: MISS from proxyco.confiz.com
X-Cache-Lookup: MISS from proxyco.confiz.com:3128
Via: 1.0 proxyco.confiz.com:3128 (squid/2.6.STABLE21)
Connection: close

この解決策を見つけるのを手伝ってください。

4

1 に答える 1

0

次のリンクがお役に立てば幸いです。

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_admin_IPNIntro

サンプルコードをダウンロードするには

https://www.x.com/developers/PayPal/documentation-tools/code-sample/216623

IPN Listnerは非常に便利で、簡単に統合できます

于 2012-07-25T08:03:50.667 に答える