0

ローカル マシンから Paypal サンドボックスを介して簡単な支払いをしようとしています。Codeigniter で Omnipay ライブラリを使用しています。

developer.paypal.com でサンドボックス アカウントとテスト アプリケーションをセットアップしました。これは私が使用しているコードです:

$gateway = GatewayFactory::create('PayPal_Express');
$gateway->setUsername([username]);
$gateway->setPassword([password]);
$gateway->setSignature([signature]);
$gateway->setTestMode(true);

$params = array(
    'amount' => '1.00',
    'currency' => 'USD',
    'description' => 'test purchase',
    'transactionId' => '123',
    'transactionReference' => '123ref',
    'returnUrl' => [returnUrl],
    'cancelUrl' => [cancelUrl],
);

$response = $gateway->purchase($params);

次のエラーが表示されます。

致命的なエラー: メッセージ「SSL 証明書に問題があります。CA 証明書が正常であることを確認してください。詳細: エラー:14090086:SSL ルーチン:SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました...

BUZZと呼ばれるものでcomposerを使用してomnipayをインストールしました。オンラインでペイパル取引を行うのは初めてで、ローカルの SSL 証明書をセットアップする必要があるかどうかわかりません。もしそうなら、誰かがそれを設定する方向に私を向けることができますか?

ありがとう。

4

2 に答える 2

1

それはかなり危険に聞こえます。Omnipay はGuzzleを使用して PayPal への HTTPS リクエストを作成し、Guzzle は最新のルート SSL 証明書をバンドルします。したがって、HTTPS 警告は表示されません。

これはローカルで機能しますか? 別のサーバーを試しましたか?共有ホスティングを使用している場合、Web ホストがリクエストをプロキシしようとしている可能性があります。これは、本質的に中間者攻撃を実行していることを意味し、Web サイトが安全でなくなる可能性があります。

編集: エラーが実際には Guzzle ではなく Buzz から発生していることに気付きました。どうやってそれをインストールしましたか?composer.json ファイルはどのようなものですか? 使用しているオムニペイのバージョンは? Omnipay の最新バージョン (2.0) にアップグレードすると、内部で Guzzle が使用され、SSL エラーが修正されます。

于 2013-11-27T09:34:12.913 に答える
0

オムニペイの問題ページで回答を見つけました (少なくともテスト用): https://github.com/omnipay/omnipay/issues/13

ローカル テストのみ:

これらの行をファイル /buzz/lib/Buzz/Client/Curl.php の curl_exec メソッドの直前に追加します...

curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);

于 2013-11-26T21:51:44.693 に答える