【发布时间】:2011-02-15 01:15:39
【问题描述】:
我是 PayPal API 的新手,在 PHP 中使用 CURL 调用 SetExpressCheckout 时遇到问题。 就我而言,我已经正确设置了所有内容,但我一直收到 81002 错误“不支持指定的方法”。
代码 sn-p 如下。我从here 获得了 CA Root 证书文件。
<?php
$paypal_data = array(
'USER' => urlencode('andree_1272823561_biz_api1.gmail.com'),
'PWD' => urlencode('1272823576'),
'SIGNATURE' => urlencode('Am1t0wiu2tv7VwZ5ebdeY9zv1GF6Ad0PFz-qTGFFf7vbWU6ee4bxy8KL'),
'VERSION' => urlencode('52.0'),
'PAYMENTACTION' => urlencode('Sale'),
'METHOD' => urlencode('SetExpressCheckout'),
'AMT' => urlencode('52.00'),
'RETURNURL' => urlencode('get_express_checkout_details.php'),
'CANCELURL' => urlencode('index.php')
);
$url = 'https://api-3t.sandbox.paypal.com/nvp?' . http_build_query($paypal_data);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
$result = curl_exec($curl);
curl_close($curl);
parse_str($result, $result);
?>
<pre>Data sent: <?php print_r($paypal_data); ?></pre>
<pre>Result: <?php print_r($result); ?></pre>
当我运行代码时,输出如下:
Data sent: Array
(
[USER] => andree_1272823561_biz_api1.gmail.com
[PWD] => 1272823576
[SIGNATURE] => Am1t0wiu2tv7VwZ5ebdeY9zv1GF6Ad0PFz-qTGFFf7vbWU6ee4bxy8KL
[VERSION] => 52.0
[PAYMENTACTION] => Sale
[METHOD] => SetExpressCheckout
[AMT] => 52.00
[RETURNURL] => get_express_checkout_details.php
[CANCELURL] => index.php
)
Result: Array
(
[ACK] => Failure
[L_ERRORCODE0] => 81002
[L_SHORTMESSAGE0] => Unspecified Method
[L_LONGMESSAGE0] => Method Specified is not Supported
[L_SEVERITYCODE0] => Error
)
有人知道可能是什么问题吗?
问候,安德烈。
【问题讨论】:
-
它对我来说运行良好,唯一的区别。是我没有使用证书选项,并添加了这两个选项 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
-
嗯 .. 很奇怪。我已经用您建议的两行更改了 CAINFO 选项,但仍然收到相同的错误消息。