将 Paypal PHP sdk 与 Cakephp 3.x 集成

Posted

技术标签:

【中文标题】将 Paypal PHP sdk 与 Cakephp 3.x 集成【英文标题】:Integrate Paypal PHP sdk with Cakephp 3.x 【发布时间】:2017-06-19 00:59:36 【问题描述】:

使用 Paypal php SDK 非常简单,但是当我尝试在 cakephp 3.x 中使用这个 SDK 时,它会产生错误。我在“Paypal SDK 项目”中更改了命名空间名称,以将所有文件置于一个命名空间下。

我的 cakephp 项目命名空间名称是 命名空间应用

但 Paypal SDK 中的命名空间是 名称空间贝宝 我只是将其更改为“命名空间应用程序”并将所有文件放在 PayPal 文件夹中,然后将该文件夹放在 cakephp 项目的“src”文件夹中。但 PayPal 无法使用这种技术。

你能告诉我如何在 CakePHP 中使用这个 SDK,或者把文件放在哪里最好。 我知道还有一些其他技术可以通过没有 SDK 的贝宝付款,但我想使用 SDK。

能否请您指导我如何在 CakePHP 中集成 PayPal PHP SDK。

此处提供 SDK https://github.com/paypal/PayPal-PHP-SDK 一些付款样本在这里 http://paypal.github.io/PayPal-PHP-SDK/sample/

【问题讨论】:

修补 PayPal SDK 的实现几乎可以肯定是错误的做法。最好弄清楚如何设置目录结构和自动加载信息,以便您可以按照提供的方式使用它。将其放入 /vendor/paypal 之类的内容中会比 /src 下更好的选择。 【参考方案1】:

1.使用 composer 进行安装,它将管理依赖项:

在命令 promot 中转到您的项目目录(例如:E:\xampp\htdocs\cakephp)并键入以下内容:

composer require "paypal/rest-api-sdk-php:*"

这会将最新版本的paypal sdk安装到供应商文件夹中,您可以进入供应商并检查。

2。配置您的环境:

在您想要的任何控制器中为 paypal 的配置创建任何功能:

public function configuration() 
   $apiContext = new \PayPal\Rest\ApiContext(
     new \PayPal\Auth\OAuthTokenCredential(
     'YOUR APPLICATION CLIENT ID',  // you will get information about client id and secret once you have created test account in paypal sandbox  
     'YOUR APPLICATION CLIENT SECRET'  
    )
  );
 

当您使用 cakephp 框架时,您无需按照教皇文档中的建议在函数中写入以下行:

// Autoload SDK package for composer based installations
 require 'vendor/autoload.php';

这是因为您已经使用供应商文件夹中的 autoload.php 文件完成了该操作。

3.使用贝宝类:

您需要以这种方式在控制器中使用 paypal 类/命名空间:

namespace App\Controller; // your controller have this already

use App\Controller\AppController; // your controller have this already

use PayPal\Api\Payer;
use PayPal\Api\Item;
use PayPal\Api\ItemList;

4.完全按照这个快速入门指南进行操作,现在非常简单:

Paypal quick start guide.

制作沙盒测试账号:(Paypal developer guide)

【讨论】:

【参考方案2】:

我推荐使用:omnipay https://packagist.org/packages/omnipay/paypal

或者这个添加到你的 composer.json


"require": 
    "omnipay/paypal": "~2.0"

然后

$ curl -s http://getcomposer.org/installer | php
$ php composer.phar update

如果窗口

composer update

【讨论】:

以上是关于将 Paypal PHP sdk 与 Cakephp 3.x 集成的主要内容,如果未能解决你的问题,请参考以下文章

与 Paypal 的 PHP REST SDK 的支付协议

Paypal-Merchant-SDK:如何使用 SetExpressCheckout.php 仅获取令牌,然后将其传递给 CreateRecurringPaymentsProfile.php?

paypal-php-sdk 中的 PayPal-Mock-Response

paypal-php-sdk中的PayPal-Mock-Response

带有 laravel 的 Paypal PHP SDK。在生产模式下加载配置端点时出现问题

使用 php sdk 动态更改 Paypal Express 端点