laravel Chansen条纹版[已关闭]

dz6r00yl  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(104)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

9小时前关门了。
Improve this question
我不是一个程序员,我只是买了一个php脚本,但支付网关条纹说,它使用了过时的api。
下面是付款代码:

else if ($request->gateway == "stripe") {
            try {
                $stripe = new StripeClient($this->settings->stripe_secret_key);
                $data = $stripe->checkout->sessions->create([
                    'success_url' => route('fund.verify', ['trans' => $ref]),
                    'cancel_url' => route('fund.verify', ['trans' => $ref]),
                    'payment_method_types' => ['card'],
                    'line_items' => [
                        [
                            'name' => $ref,
                            'amount' => number_format($amount + $charge, 2, '.', '') * 100,
                            'currency' => $link->getCurrency->real->currency,
                            'quantity' => 1,
                        ],
                    ],
                    'mode' => 'payment',
                ]);
                $sav->update([
                    'charge_id' => $data->id,
                ]);
            } catch (\Stripe\Exception\CardException $e) {
                return back()->with('alert', $e->getMessage());
            } catch (\Stripe\Exception\InvalidRequestException $e) {
                return back()->with('alert', $e->getMessage());
            }

这是我得到的错误:在此API版本中不能使用line_items.amountline_items.currencyline_items.nameline_items.descriptionline_items.images。请使用line_items.priceline_items.price_data。有关详细信息,请参阅https://stripe.com/docs/payments/checkout/migrating-prices
我也想在沙盒中使用贝宝,但它给了我一个克林特认证失败,所以我不得不使用生产代替。有无论如何改变,以及?
下面是支付网关代码:

else if ($request->gateway == "paypal") {
            $authToken = base64_encode($this->settings->paypal_client_id . ':' . $this->settings->paypal_secret_key);
            $param = [
                'intent' => "CAPTURE",
                "purchase_units" => [
                    [
                        'amount' => [
                            "currency_code" => $link->getCurrency->real->currency,
                            "value" => number_format($amount + $charge, 2, '.', '')
                        ],
                    ]
                ],
                "application_context" => [
                    'return_url' => route('fund.verify', ['trans' => $ref]),
                    'cancel_url' => route('fund.failed', ['trans' => $ref])
                ]
            ];
            $curl = new Curl();
            $curl->setHeader('Authorization', 'Basic ' . $authToken);
            $curl->setHeader('Content-Type', 'application/json');
            $curl->post("https://api-m.paypal.com/v2/checkout/orders", $param);
            $curl->close();
            $data = $curl->response;
        }

如果有人能帮我解决这个问题,我会很高兴的。
读过stripe和paypal的api文档,但什么都不懂。

deyfvvtc

deyfvvtc1#

与其升级所有代码,不如先找出此代码使用的Stripe API版本,然后再降级到该版本。在stripe-php库中,您可以指定创建stripe客户端时使用的版本[1]。您也可以联系Stripe的技术支持[2]来降级您帐户的API版本。

"api_key" => "sk_123456",
  "stripe_version" => "2022-11-15"
]);

如果您想更改代码,可以查看Stripe的API参考[3],了解如何将这些字段放入新版本的checkout->sessions->create调用[3]中。
[1][https://stripe.com/docs/api/versioning](https://stripe.com/docs/api/versioning)
[2][https://support.stripe.com/?contact=true](https://support.stripe.com/?contact=true)
[3] https://stripe.com/docs/api/checkout/sessions/create?lang=php#create_checkout_session-line_items-price_data

相关问题