PHP - Paypal RESTful API SDK

标签 php paypal-rest-sdk paypal

我正在努力在我的网站上允许使用 PayPal 直接信用卡付款。我从这里下载了 PayPal PHP RESTful SDK https://github.com/paypal/PayPal-PHP-SDK/releases我正在按照有关从此处设置直接信用卡付款的说明... https://devtools-paypal.com/guide/pay_creditcard/php?interactive=ON&env=sandbox .

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

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

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

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

我收到 fatal error :找不到类 'OAuthTokenCredential'

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

$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();
}

关于PHP - Paypal RESTful API SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40268618/

相关文章:

php - HTML 表单完成两个 Action ?验证然后通过一个提交按钮重定向

php - 使用 AJAX 发送具有可变字段数的表单,$_POST 数组为空

javascript - 动态列表复选框问题

php - PayPal-PHP-SDK 是否支持向另一个 paypal 帐户付款?

c# - Paypal Rest API - 使用 paypal 帐户付款 - 导致错误 - cookie 未启用 -

php - Paypal PHP Curl 不返回任何内容

javascript - jQuery 在传递 POST 数据时在新选项卡中打开页面

php - Laravel 5 Auth Post Submit - VerifyCsrfToken.php 第 46 行中的 TokenMismatchException

curl - Paypal API (NVP) TransactionSearch 给出错误 10004 - 开始日期无效

Node.js 和 MongoDB 进行支付和存储信用卡数据