与paypal集成时如何解决paypal登录选项卡丢失的问题
Posted
技术标签:
【中文标题】与paypal集成时如何解决paypal登录选项卡丢失的问题【英文标题】:how to solve paypal login tab missing when integrate with paypal 【发布时间】:2022-01-12 09:58:39 【问题描述】:我想在 Laravel 中进行 paypal 集成。我已经使用 composer require srmklive/paypal 为我的项目安装 srmklive/paypal 包。当我想按下 PayPal 按钮时出现 404 错误。弹出的贝宝登录选项卡将丢失。然后我检查网络,我得到了像给出的图像一样的错误。
这是我的代码:
class PaymentController extends Controller
public function create(Request $request)
$data = json_decode($request->getContent(), true);
$provider = \PayPal::setProvider();
$provider->setApiCredentials(config('paypal'));
$token = $provider->getAccessToken();
$provider->setAccessToken($token);
$plan = $provider->createOrder([
"intent" => "CAPTURE",
"purchase_units" => [
[
"amount" => [
"currency_code" => "USD",
"value" => "30"
],
"description" => "Item 1"
]
]
]);
return response()->json($plan);
public function capture(Request $request)
$data = json_decode($request->getContent(), true);
$orderId = $data['orderID'];
$provider = \PayPal::setProvider();
$provider->setApiCredentials(config('paypal'));
$token = $provider->getAccessToken();
$provider->setAccessToken($token);
$result = $provider->capturePaymentOrder($orderId);
return response()->json($result);
这是刀片文件中的代码
paypal.Buttons(
createOrder: function(data, actions)
return fetch('api/paypal/order/create/',
method: 'post',
body:JSON.stringify(
"value":30
)
).then(function(res)
return res.json();
).then(function(orderData)
return orderData.id;
);
,
onApprove: function(data, actions)
return fetch('/api/paypal/order/capture/',
method: 'post',
body: JSON.stringify(
orderID: data.orderID
)
).then(function(res)
return res.json();
).then(function(orderData)
var errorDetail = Array.isArray(orderData.details) && orderData.details[0];
if (errorDetail && errorDetail.issue === 'INSTRUMENT_DECLINED')
return actions.restart(); // Recoverable state, per:
if (errorDetail)
var msg = 'Sorry, your transaction could not be processed.';
return alert(msg);
);
).render('#paypal-button-container');
错误显示如给出的图像。
有人知道怎么解决吗?
【问题讨论】:
【参考方案1】:您的服务器上是否存在路由api/paypal/order/create/
?从错误消息中,它返回 404。
该路由必须存在(不是 404)并成功输出带有从 PayPal API 获得的id
的 JSON 响应。
【讨论】:
嗨,谢谢你的回复,我已经为api/paypal/order/create/创建了路由 然后调试它。它不能返回 404,并且必须返回带有id
的 JSON
检查控制台后,我发现了这个错误: SyntaxError: Unexpected token
当您返回/输出 html 而不是 JSON 时会发生这种情况。只返回 JSON。以上是关于与paypal集成时如何解决paypal登录选项卡丢失的问题的主要内容,如果未能解决你的问题,请参考以下文章