0

codeignator に 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:\xampp\htdocs\egyptianornaments\application\config/cacert.pem
CApath: none
[_reference:protected] => 
[_data:protected] => 
[_redirect_url:protected] => 
[_redirect_method:protected] => GET
[_redirect_message:protected] => 
[_redirect_data:protected] => 
)

サーバー上で実行すると空白のページが表示されるので、何が間違っているのでしょうか?

4

1 に答える 1

0

署名方法の代わりに証明書を使用するようにコードが設定されているように見えますが、サーバーには SSL 証明書がインストールされておらず、PayPal で動作するように構成されていません。署名方法に切り替えることをお勧めします。そうすれば、それをいじる必要はまったくありません。

私はあなたが使用しているライブラリに精通していませんが、それを設定する方法があるはずです. また、非常に人気のあるPayPal 用の私自身の CodeIgniter ライブラリもご覧になることをお勧めします。

ただし、実際には、その CI 固有のライブラリのメンテナンスを停止しました。これは、PayPal 用の一般的な PHP ライブラリをPHP 5.3+ 用に更新し、Composer / Packagist と連携して、CodeIgniter またはその他のフレームワークで使用できるようにしたためです。

今日の時点で、CI 固有のライブラリはそれほど遅れていませんが、繰り返しますが、もう更新していません。どこでも機能するため、現在は一般バージョンのみを維持しています。

とにかく、すべての PayPal API 呼び出しが非常に簡単になります。

于 2014-04-21T03:19:54.320 に答える