- 已关闭**。此问题需要超过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.amount
、line_items.currency
、line_items.name
、line_items.description
或line_items.images
。请使用line_items.price
或line_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文档,但什么都不懂。
1条答案
按热度按时间deyfvvtc1#
与其升级所有代码,不如先找出此代码使用的Stripe API版本,然后再降级到该版本。在stripe-php库中,您可以指定创建stripe客户端时使用的版本[1]。您也可以联系Stripe的技术支持[2]来降级您帐户的API版本。
如果您想更改代码,可以查看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