我使用Paypal API已经很长时间了。
现在,我的网站已经过时,我遇到了将代码迁移到生活中的问题, 我认为我需要添加clientid + clientSecret,这是我在开发网站上没有的。
(正如我在https://github.com/paypal/rest-api-sdk-php和某些工作场所所见)。
此外,我希望对代码进行微小的更改,即使它在生活网站上运行似乎也很老套。
作为开发人员,我使用这样的“setExressCheckout”方法 (注意回声$响应 - 我不指望那条线。做什么呢?)
// ===========代码开始
<?php
/*.
require_module 'standard';
require_module 'standard_reflection';
require_module 'spl';
require_module 'mysqli';
require_module 'hash';
require_module 'session';
require_module 'streams';
.*/
require_once __DIR__ . "/stdlib/all.php";
/*. array .*/ $body_data = null;
$body_data_txt = "";
/*. string .*/ $htmlpage = "";
/*. array .*/ $tokenAr = array();
$response = "";
session_start();
$url = trim('https://www.sandbox.paypal.com/cgi-bin/webscr');
$body_data = array( 'USER' => "*******",
'PWD' => "*******",
'SIGNATURE' => "******",
'VERSION' => "95.0",
'PAYMENTREQUEST_0_PAYMENTACTION' => "Sale",
'PAYMENTREQUEST_0_AMT' => (string)$_SESSION["AMOUNT"],
'PAYMENTREQUEST_0_CURRENCYCODE' => 'USD',
'RETURNURL' => "*****",
'CANCELURL' => "******",
'METHOD' => "SetExpressCheckout"
);
$body_data_txt = http_build_query($body_data, '', chr(38));
try
{
//create request and add headers
$params = array(
'http' => array(
'protocol_version' => "1.1",
'method' => "POST",
'header' => "".
"Connection: close\r\n".
"Content-Length: ".strlen($body_data_txt)."\r\n".
"Content-type: "."application/x-www-form-urlencoded"."\r\n",
'content' => $body_data_txt
));
//create stream context
$ctx = stream_context_create($params);
//open the stream and send request
try {
$fp = fopen($url, 'r', false, $ctx);
} catch(ErrorException $e) {
throw new ErrorException("cannot open url" . $url . " error:" . $e->getMessage());
}
//get response
$response = (string)stream_get_contents($fp);
//check to see if stream is open
if ($response === "") {
throw new Exception("php error message = " . "$php_errormsg");
}
//close the stream
fclose($fp);
$key = explode("&", $response);
if (substr($response, 0, 1) === "<") {
echo $response; // ******************************
}
....
// ============代码结束
代码无法按预期工作,因为“echo $ response ...”行不应该运行。 它的内容标题为:
“没有买家或卖家
免费注册。
... “
在调查时,我需要客户端ID和客户端密钥。我在https://developer.paypal.com做的。 但是如何使用它 - 我的代码变化很小?
谢谢:)
答案 0 :(得分:0)
我找到了我的问题的解决方案 - 不需要clientid和clientsecret。
代码与开发模式和生活模式相同。
网址错误,应该是:$ url = trim(&#39; https://api-3t.paypal.com/nvp&#39;);
谢谢,无论如何:)