2016-10-26 15 views
1

私は自分のウェブサイトでPayPalダイレクトクレジットカードの支払いを許可しています。私はhttps://github.com/paypal/PayPal-PHP-SDK/releasesからPayPal PHP RESTful SDKをダウンロードしました。ここから直接クレジットカード決済を設定する手順に従っています... https://devtools-paypal.com/guide/pay_creditcard/php?interactive=ON&env=sandboxPHP - PayPal RESTful API SDK

私は困惑しています。 SDKには、次のようなフォルダ構造を持っています

composer->subfolders... 
paypal->subfolders... 
psr->subfolders... 
autoload.php 

だから私は私のPHPスクリプトでautoload.phpファイルを含めて、私は、コード

次のビットであるチュートリアルの最初のステップを実行しようとすると、私が代わりに次のコードを使用している場合は、私は、しかし Fatal error: Class 'OAuthTokenCredential' not found

を取得

$paypal = new OAuthTokenCredential($clientId, $clientSecret, $sdkConfig); 

...

$paypal = new \PayPal\Auth\OAuthTokenCredential($clientId, $clientSecret, $sdkConfig); 

私は、次のようなバックオブジェクトを取得:

PayPal\Auth\OAuthTokenCredential Object 
(
    [clientId:PayPal\Auth\OAuthTokenCredential:private] => CLIENT_ID 
    [clientSecret:PayPal\Auth\OAuthTokenCredential:private] => CLIENT_SECRET 
    [accessToken:PayPal\Auth\OAuthTokenCredential:private] => 
    [tokenExpiresIn:PayPal\Auth\OAuthTokenCredential:private] => 
    [tokenCreateTime:PayPal\Auth\OAuthTokenCredential:private] => 
    [cipher:PayPal\Auth\OAuthTokenCredential:private] => PayPal\Security\Cipher Object 
     (
      [secretKey:PayPal\Security\Cipher:private] => CLIENT_SECRET 
     ) 

    [_propMap:PayPal\Common\PayPalModel:private] => Array 
     (
     ) 

) 

をしかし、私はチュートリアルのステップ2のために必要なものであるaccessTokenは空です。 私は間違って何をしていますか?誰もこれのためのステップガイドでストレート前方にステップを与えることができますか?私が見つけられないものがありますか?

ありがとうございました!

答えて

1

あなたがリンクしているチュートリアルは、それがPHP用だと言っていますが、本当にそうではありません。それが離れて行く場合にはここでThis one on PayPal's PHP SDK github is more directly for PHP. は、そのページからコードです:

<?php 
// 1. Autoload the SDK Package. This will include all the files 
// and classes to your autoloader 
// Used for composer based installation 
require __DIR__ . '/vendor/autoload.php'; 
// Use below for direct download installation 
// require __DIR__ . '/PayPal-PHP-SDK/autoload.php'; 

$apiContext = new \PayPal\Rest\ApiContext(
    new \PayPal\Auth\OAuthTokenCredential(
    'AYSq3RDGsmBLJE-otTkBtM-jBRd1TCQwFf9RGfwddNXWz0uFU9ztymylOhRS',  // ClientID 
    'EGnHDxD_qRPdaLdZz8iCr8N7_MzF-YHPTkjs6NKYQvQSBngp4PTTVWkPZRbL'  // ClientSecret 
) 
); 

// Save Credit Card to vault and then read it back 
$creditCard = new \PayPal\Api\CreditCard(); 
$creditCard->setType("visa") 
    ->setNumber("4417119669820331") 
    ->setExpireMonth("11") 
    ->setExpireYear("2019") 
    ->setCvv2("012") 
    ->setFirstName("Joe") 
    ->setLastName("Shopper"); 

try { 
    $creditCard->create($apiContext); 
    echo $creditCard; 
} 
catch (\PayPal\Exception\PayPalConnectionException $ex) { 
    // This will print the detailed information on the exception. 
    //REALLY HELPFUL FOR DEBUGGING 
    echo $ex->getData(); 
} 
+0

は、このコードをありがとうございました。私はそれを使用するように更新しましたが、accessToken、tokenExpiresIn、およびtokenCreateTimeの$ apiContextオブジェクトにはまだ価値がありません。 14077410:SSLルーチン:SSL23_GET_SERVER_HELLO:sslv3アラートハンドシェイクエラー – Phil

+0

TLS 1.2の要件に起因するエラーが発生しているようですが、エラーが発生しました。私はPHP 5.4.7を使用しています。問題が修正されているかどうかを確認するために、5.6にアップグレードします。ありがとうございました! – Phil

+0

ああ、それは問題のように聞こえる。喜んで助けてください。 – craigts