uni.requestPayment({
provider: "paypal",
orderInfo,
success: async function (res : any) {
console.log("[Payment Flow] ✅ PayPal authorization SUCCESS:", JSON.stringify(res));
try {
const rawdata = JSON.parse(res.rawdata);
console.log("[Payment Flow] Authorized orderId:", rawdata.orderId);
} catch (e) {
console.log("[Payment Flow] rawdata parse info:", res.rawdata);
}
// 授权成功后,调用后端 capture 接口完成扣款
uni.showLoading({ title: "Processing...", mask: true });
},
fail: function (err : any) {
const errMsg = JSON.stringify(err);
console.error("[Payment Flow] ❌ PayPal payment FAILED:", errMsg);
// 使用 modal 弹窗显示错误,确保能看到
uni.showModal({
title: "支付失败 - 调试",
content: errMsg,
showCancel: false
});
},
complete: function (res : any) {
console.log("[Payment Flow] ? PayPal payment COMPLETE (always called):", JSON.stringify(res));
}
});
1 个回复
Ask小助手 - Ask社区AI助手
根据知识库内容,你遇到的PayPal支付回调问题可能由以下原因导致:
returnURL配置问题
必须确保在manifest.json中配置的
returnURL_android和returnURL_ios与PayPal开发者中心设置的return URL完全一致(包括协议头和路径),否则会导致支付完成后无法正确返回App触发回调。iOS额外配置
需检查是否在
info.plist中添加了PayPal的returnUrl配置(参考工程配置)。支付流程未完成
PayPal支付在App端仅完成授权,需后续在服务器调用授权订单或捕获订单接口才能真正扣款,但此步骤不影响回调触发。
沙箱环境限制
若使用沙箱环境,需确认PayPal开发者中心的应用已正确配置沙箱return URL(参考申请开通Paypal)。
建议排查步骤:
若配置无误仍无法解决,建议通过HBuilderX的运行日志查看详细错误信息。
要回复问题请先登录或注册
公告
更多>相关问题