gpt4 book ai didi

php - Paypal PDT 无法使用 CURL 工作

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:12 24 4
gpt4 key购买 nike

Paypal 返回网站并提供交易 ID,现在使用 CURL 发布数据它只是不起作用,任何人都可以帮助我。它没有打印成功消息。我已经搜索了堆栈溢出,但仍然没有。

    $tx = $_GET['tx'];
$ID = $_GET['cm'];
$currency = $_GET['cc'];
$identity = '0iMIW7w4OXAed9Tvz6l9fpUY8B-E_WtE3toU7sT5gIzDJc9uPUgt9sVCN30';


// Further processing
// Init cURL

// Init cURL
$request = curl_init();

// Set request options
$url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
$fields = array(
'cmd' => '_notify-synch',
'tx' => $tx,
'at' => $identity,
);
curl_setopt($request,CURLOPT_URL, $url);
curl_setopt($request,CURLOPT_POST, count($fields));
curl_setopt($request,CURLOPT_POSTFIELDS, http_build_query($fields));
curl_setopt($request,CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($request,CURLOPT_HEADER, FALSE);

// Execute request and get response and status code
$response = curl_exec($request);
$status = curl_getinfo($request, CURLINFO_HTTP_CODE);

// Close connection
curl_close($request);

最佳答案

我看不到任何“成功消息”——也没有看到 curl 请求后输出任何内容的任何尝试,唯一让我印象深刻的事情——其他人可能不同意——是选项中没有任何内容专门处理 https 通信根据我的经验,这需要设置其他选项。我之前没有处理过 PayPal api,所以这可能没有任何用处,但是.....

尝试下载一份 cacert.pem - google 是你的 friend 。

<?php
$tx = $_GET['tx'];
$ID = $_GET['cm'];
$currency = $_GET['cc'];
$identity = '0iMIW7w4OXAed9Tvz6l9fpUY8B-E_WtE3toU7sT5gIzDJc9uPUgt9sVCN30';

/* Use the full path to your own cacert.pem, download from the interwebs if you do not have a copy */
$cacert = 'c:/wwwroot/cacert.pem';

$url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
$fields = array(
'cmd' => '_notify-synch',
'tx' => $tx,
'at' => $identity,
);

$request = curl_init();
curl_setopt($request,CURLOPT_URL, $url);

if( parse_url( $url,PHP_URL_SCHEME )=='https' ){
curl_setopt( $request, CURLOPT_SSL_VERIFYPEER, FALSE ); /* set to true once you get this working */
curl_setopt( $request, CURLOPT_SSL_VERIFYHOST, 2 );
curl_setopt( $request, CURLOPT_CAINFO, realpath( $cacert ) );
}


/* this should be true or false not count($fields): in this case true*/
/*curl_setopt($request,CURLOPT_POST, count( $fields ) );*/
curl_setopt($request,CURLOPT_POST, true );
curl_setopt($request,CURLOPT_POSTFIELDS, http_build_query( $fields ) );
curl_setopt($request,CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($request,CURLOPT_HEADER, FALSE);

/* Quite often requests get rejected for no useragent */
curl_setopt($request,CURLOPT_USERAGENT, 'paypal-mozilla-chrome-useragent' );
curl_setopt($request, CURLINFO_HEADER_OUT, TRUE );


$response = curl_exec($request);
$status = curl_getinfo($request, CURLINFO_HTTP_CODE);

curl_close($request);
/* See what the curl request has retrieved */
echo '<pre>',print_r( $response, true ),$status,'</pre>';
?>

关于php - Paypal PDT 无法使用 CURL 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32364427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com