如何在 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 中解密 cookie

如何在 laravel 8 中使用 Cascade Soft Delete Trait?

Laravel 8 + Tinker:如何创建虚拟数据

使用 Jetstream 在 Laravel 8 中添加新 Livewire 组件时如何解决 RootTagMissingFromViewException 错误

自我终止如何在laravel 8中使用模态打开每个帖子