如何在 Laravel 8 中使用 srmklive/laravel-paypal v3
Posted
技术标签:
【中文标题】如何在 Laravel 8 中使用 srmklive/laravel-paypal v3【英文标题】:How to use srmklive/laravel-paypal v3 in Laravel 8 【发布时间】:2021-06-10 22:46:27 【问题描述】:我在 laravel 项目中使用 srmklive/laravel-paypal v.3 包(https://github.com/srmklive/laravel-paypal 没有文档)。 有人可以解释我如何使用它吗?我该如何设置请求?
例如,当我按下支付按钮时,控制器会处理此代码:
public function payment()
$provider = new PayPalClient;
// Through facade. No need to import namespaces
$provider = PayPal::setProvider();
$provider->setCurrency('EUR');
$provider->createOrder([
"intent"=> "CAPTURE",
"purchase_units"=> [
"amount"=> [
"currency_code"=> "EUR",
"value"=> "100.00"
]
]
]);
但我有这个错误:尝试访问 null 类型值的数组偏移量
相对于这部分代码:
$this->apiUrl = collect([$this->config['api_url'], $this->apiEndPoint])->implode('/');
类 srmklive\paypal\src\Traits\PayPalAPI\Orders.php:21
这个类在我的控制器之外,因为它是一个库类,但是没有文档。
【问题讨论】:
你确定它适用于 L8 吗?自述文件提到 Laravel 5.1 到 5.8 我认为是的,对于 Laravel 5.1 到 5.8,作曲家需要 srmklive/paypal:~2.0,对于其他版本作曲家需要 srmklive/paypal:~3.0 config['api_url'] 为空。类 PayPal.php 具有设置 config['api_url'] 的 setOptions($credentials) 方法。这个受保护的方法永远不会被调用,这是一个错误吗? 您应该在问题中添加有关这些错误的信息,而不是评论。我不知道这个 pkugin,但是它看起来像一些配置文件没有填充。这个方法是一个setter,可能被动态调用。顺便说一句,自述文件提到“安装后,您需要添加您的贝宝设置。以下是您将在 config/paypal.php 中找到的代码,您应该相应地更新”您这样做了吗? 您好,您找到解决方案了吗?如果是,那么请将其发布为答案。我也在努力在 Laravel 8 上设置贝宝。而且我发现的所有教程都不适用于 laravel 8。如果可能的话,请分享详细的解决方案:) 【参考方案1】:这是使它工作的方法。没有文档!
PayPal::setProvider();
$paypalProvider = PayPal::getProvider();
$paypalProvider->setApiCredentials(config('paypal'));
$paypalProvider->setAccessToken($paypalProvider->getAccessToken());
来源 https://github.com/srmklive/laravel-paypal/issues/407#issuecomment-798562911
【讨论】:
我设法在 paypal 上完成了支付流程,但是当用户被重定向到我的站点时,paypal 请求似乎只有两个值:PayerID 和 Token。订单ID在哪里?它似乎不存在,但我需要它来恢复待付款并将其置于已付款/已完成。 $order = $paypalProvider->createOrder();只需 var_dump order 变量,您就会在那里找到 id。您必须将该值存储在会话或数据库中。 这一行PayPal::setProvider();
给出错误Class 'App\Http\Controllers\PayPal' not found
。我是laravel的新手。并且努力在 laravel 8 上完成 paypal。你能描述一下这条线是关于什么的,为什么它向我显示错误? ^^
只需添加使用PayPal;文件顶部的外观。以上是关于如何在 Laravel 8 中使用 srmklive/laravel-paypal v3的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 8 模块中使用 InertiaJS 加载 Vue 组件
如何在 laravel 8 中使用 Cascade Soft Delete Trait?
使用 Jetstream 在 Laravel 8 中添加新 Livewire 组件时如何解决 RootTagMissingFromViewException 错误