PayPal Checkout回调函数未触发问题排查求助
问题修复排查步骤
- 确认Info.plist中已正确注册回调URL Scheme
你配置的returnUrl为com.google.demo://paypalpay,需要在Info.plist的URL Types节点下添加URL Scheme为com.google.demo,否则系统无法将PayPal的跳转回传给你的App。 - 补全AppDelegate/SceneDelegate中的回调处理逻辑
PayPal SDK不会自动捕获App的跳转回调,需要你手动将跳转的URL传给SDK处理:
// AppDelegate(iOS 12及以下适用) func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { return Checkout.handle(url: url) } // SceneDelegate(iOS 13及以上适用) func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { guard let url = URLContexts.first?.url else { return } Checkout.handle(url: url) } // SwiftUI App入口适用 @main struct DemoApp: App { var body: some Scene { WindowGroup { ContentView() .onOpenURL { url in Checkout.handle(url: url) } } } }
- 升级PayPal iOS SDK到最新稳定版
旧版本SDK存在sandbox环境下银行卡支付后回调丢失的已知问题,升级后可直接修复该类兼容性问题。 - 更换有效sandbox测试卡重试
如果使用的测试卡被PayPal标记为高风险,会导致支付流程卡在后台无响应,更换官方推荐的测试卡:卡号4111111111111111、有效期选未来任意时间、CVV填任意3位数字重新测试。 - 检查订单参数合法性
你当前传入的支付金额为500美元,确认你的sandbox商家账户没有设置单笔支付金额上限,避免订单被后台拦截无返回。
内容的提问来源于stack exchange,提问作者Arun Tiwari
相关产品推荐
相关产品推荐

