PHP - 贝宝 RESTful API SDK

PHP - PayPal RESTful API SDK

我正在努力在我的网站上允许使用 PayPal 直接信用卡付款。我已经从这里 https://github.com/paypal/PayPal-PHP-SDK/releases and I am following instructions on setting up the direct credit card payment from here...https://devtools-paypal.com/guide/pay_creditcard/php?interactive=ON&env=sandbox.

下载了 PayPal PHP RESTful SDK

我被难住了。 SDK 的文件夹结构如下:

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

所以我将 autoload.php 文件包含在我的 PHP 脚本中,当我尝试执行教程中的第一步时,即以下代码

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

我得到 Fatal error: Class 'OAuthTokenCredential' not found

但是,如果我改为使用以下代码...

$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 是空的。 我到底做错了什么?任何人都可以为此提供直接的分步指南吗?有没有我找不到的可用的?

谢谢!

您链接到的教程说它适用于 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();
}