我正在尝试使用CI Merchant库作为代码签名器这是我的代码:
$this->load->library('merchant');
$this->merchant->load('paypal_express');
$settings = array(
'username' => 'api.sandbox.paypal.com',
'password' => 'AQHaXxDW3dlKDRDJ7lDtGr4w8-reNNfvPFUKmEr9npMzYjZ2WIbfqqI3VL2C',
'signature' => 'EMbUfhBCqBZw8hhH6q8VZT_53-xwoOs6_lotS68I7qrY5iyHPLgDitrsAZj5',
'test_mode' => true);
$this->merchant->initialize($settings);
$params = array(
'amount' => 100.00,
'currency' => 'USD',
'return_url' => 'https://www.example.com/checkout/payment_return/123',
'cancel_url' => 'https://www.example.com/checkout');
$response = $this->merchant->purchase($params);
echo '<pre>';
print_r($response);
echo '</pre>';
但当我在本地运行它时,结果是:
Merchant_response Object
(
[_status:protected] => failed
[_message:protected] => error setting certificate verify locations:
CAfile: C:xampphtdocsegyptianornamentsapplicationconfig/cacert.pem
CApath: none
[_reference:protected] =>
[_data:protected] =>
[_redirect_url:protected] =>
[_redirect_method:protected] => GET
[_redirect_message:protected] =>
[_redirect_data:protected] =>
)
当我在服务器上运行时,我会得到一个空白页面那么我做错了什么?
看起来您的代码设置为使用证书而不是签名方法,但您的服务器没有安装SSL证书并将其配置为与PayPal一起使用,这确实是一件很痛苦的事情。我建议切换到签名方法,这样你就不必再麻烦了。
我不熟悉你正在使用的库,但一定有办法设置它。你可能还想看看我自己的PayPal CodeIgniter库,它非常受欢迎。
不过,我实际上已经停止了对该CI特定库的维护,因为我现在已经为PayPal更新了通用PHP库,使其适用于PHP 5.3+,并使用Composer/Packagist,这允许您在CodeIgniter或任何其他框架中使用它。
到今天为止,CI特定库已经不远了,但我不会再更新它了。我现在只维护通用版本,因为它在任何地方都有效。
无论如何,它使每一个贝宝API调用对你来说都非常简单。