问题描述
我使用 uni-app 官方提供的 uni.requestPayment 接口对接 PayPal 支付,目前 Android 端可以正常支付,但 iOS 端支付失败,PayPal 页面提示:
client id or redirect uri invalid
目前使用的是 PayPal Sandbox 环境,PayPal 后台已经配置了回调地址:
com.trio.deltrix.evcharging.de://paypalpay
manifest.json 中也配置了对应的 iOS 和 Android 回调地址:
"payment": {
"paypal": {
"__platform__": ["ios", "android"],
"returnURL_ios": "com.trio.deltrix.evcharging.de://paypalpay",
"returnURL_android": "com.trio.deltrix.evcharging.de://paypalpay"
}
}
同时,我已按照官方文档在 iOS Info.plist 中添加了 paypal 配置:
<key>paypal</key>
<dict>
<key>returnUrl</key>
<string>com.trio.deltrix.evcharging.de://paypalpay</string>
</dict>
iOS 应用也已配置对应的 URL Scheme。
排查结果
经过排查,我发现 iOS 跳转 PayPal 页面时,实际请求地址中的两个参数均为:
redirect_uri=nativexo://paypalpaysignup_redirect_uri=nativexo://paypalpay
实际使用的回调地址并不是我在 manifest.json 和 Info.plist 中指定的 com.trio.deltrix.evcharging.de://paypalpay。
目前 Android 端支付正常,iOS 端失败。前端使用的是官方 uni.requestPayment 接口。
希望官方协助排查
- 为什么 iOS PayPal 支付模块没有使用
manifest.json中配置的returnURL_ios? - 为什么在
Info.plist中已经配置paypal.returnUrl的情况下,实际请求仍然使用默认地址nativexo://paypalpay? - 这是否属于 HBuilderX 云端打包或 iOS PayPal 原生支付模块的已知问题?
- 是否有推荐的修复方案、补丁或需要升级的版本?
希望官方协助确认 iOS 原生 PayPal 模块实际读取回调地址的逻辑。目前希望优先排查客户端原生模块及打包配置,暂不修改现有后端支付业务逻辑。
谢谢!
2 个回复
Ask小助手
根据知识库中的官方文档和社区反馈,针对你遇到的 iOS 端 PayPal 支付未使用指定
returnURL_ios的问题,整理排查建议如下:一、官方配置要求确认
根据 uni-app 官方文档,PayPal 支付在 iOS 端需要同时完成以下配置:
在
manifest.json的“App 模块配置”中勾选“paypal 支付”并填写returnURL_ios,该值必须与 PayPal 开发者中心配置的值一致,且格式为“包名+://paypalpay”,必需全小写。参考:app-payment-paypal 配置
在 iOS 原生工程的
Info.plist中添加paypal项,并填写returnUrl。参考:payment paypal 支付 工程配置
在 PayPal 开发者中心添加对应的 return URL,可添加多个分别给 Android 和 iOS 使用。
参考:app-payment-paypal 开通
二、关于 iOS 端使用默认
nativexo://paypalpay的问题在知识库中未找到关于 iOS 原生模块默认使用
nativexo://paypalpay的官方说明。但根据 ask 社区中的相关反馈,类似“client_id 或 redirect_uri 无效”的问题有如下排查方向:PayPal 开发者中心设置:有开发者在排查 iOS 端同样报错时发现,需要在 PayPal 开发者中心勾选【Mobile SDKs】选项,这一点 uni-app 官方文档未明确说明。
参考:【报Bug】关于 paypal 支付报错(client_id或redirect_uri无效)
PayPal SDK 版本变化:社区中有反馈提到 PayPal 升级 SDK 后关闭了原先的配置方式,官方表示后续会更新 SDK 和配置方式。这可能影响 return URL 的读取逻辑。
参考:uniapp 接入 paypal 支付,登录 return_url 不正确
三、建议排查步骤
manifest.json中的returnURL_ios值与 PayPal 开发者中心配置的 return URL 完全一致(区分大小写,需全小写)。Info.plist中paypal->returnUrl的值与manifest.json中的一致。com.trio.deltrix.evcharging.de://paypalpay。manifest.json配置截图、Info.plist配置截图、PayPal 开发者中心配置截图以及uni.requestPayment调用时的orderInfo参数代码,以便进一步排查。由于知识库中暂未找到关于 iOS 原生模块在配置存在时仍使用默认
nativexo://paypalpay的直接说明,无法确认这是否属于已知缺陷。建议优先按照上述社区反馈中提到的 PayPal 开发者中心【Mobile SDKs】选项进行排查。1***@qq.com (作者) - 本人很懒很烂
你好,我遇到了 uni-app 官方 PayPal 支付模块的 iOS 回调地址问题,想请熟悉 iOS 原生支付模块的技术人员协助排查。
我的环境:
uni.requestPayment({ provider: 'paypal', orderInfo })我已经按照官方文档配置:
manifest.json中的returnURL_ios:com.trio.deltrix.evcharging.de://paypalpayInfo.plist中的paypal.returnUrl:com.trio.deltrix.evcharging.de://paypalpay但实际抓取 iOS 跳转 PayPal 时的地址,发现:
redirect_uri=nativexo://paypalpaysignup_redirect_uri=nativexo://paypalpay也就是说,实际请求使用的是
nativexo://paypalpay,而不是我配置的地址。我想请教的不是常规配置方法,而是以下几个具体问题:
returnURL_ios和Info.plist中的returnUrl?nativexo://paypalpay?希望能有熟悉 iOS PayPal 原生模块的技术人员协助确认,谢谢。
要回复问题请先登录或注册
公告
更多>相关问题