将 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-Merchant-SDK:如何使用 SetExpressCheckout.php 仅获取令牌,然后将其传递给 CreateRecurringPaymentsProfile.php?
paypal-php-sdk 中的 PayPal-Mock-Response
paypal-php-sdk中的PayPal-Mock-Response