开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
文档中心
凯发app官方网站的技术支持 & 案例 faq 
当面付
刷脸付
app支付
案例分析
sdk & demo
常见问题
常用工具
手机网站支付
电脑网站支付
直付通
花呗分期
支付能力 > app支付 > 常见问题 > ios支付完成后收不到同步回调通知
收藏
我的文档
设置
问题描述
app 支付 ios 支付完成后,商家客户端需要接收同步回调通知进行确认数据跳转,但是存在收不到同步回调通知的现象。 
凯发app官方网站的解决方案
由于 ios 自身机制,app 支付后,ios 端进行回调需用户自己手动切换,无法接收到同步响应参数,因此需要判断用户支付完成后页面是否回到了商家客户端,但是无法接收到同步回调。
demo 测试是否正常
请先用文档中最新的 客户端 demo 测试,使用 demo 的情况下是否与自身项目情况一致。 
scheme 配置是否正确
确认 url scheme 设置正确,确保有回调 app,详情可查看
点击项目名称,点击 info 选项卡,在 url types 选项中,点击 ,在 url schemes 中输入 alisdkdemo。alisdkdemo 来自于文件 apviewcontroller.m 的 nsstring *appscheme = @"alisdkdemo";。
注意:这里的 url schemes 中输入的 alisdkdemo,为测试 demo,实际商家的 app 中要填写独立的 scheme,建议跟商家 app 有一定的标识度,要做到和其他的商家 app 不重复,否则可能会导致支付宝返回的结果无法正确跳回商家 app。 
回调方法是否正确
确认商家是唤起收银台支付还是未安装支付宝客户端走的 h5 页面支付(不同的支付场景走不同的同步回调方法)。
客户端支付回调方法
(demo 为例)需通过 appdelegate.m 中的以下方法去处理同步回调返回(可以下载 demo 用编辑器打开文件自行查看)。
注意:新版 sdk 一概使用此方法。
plain text
复制代码
[[alipaysdk defaultservice] processorderwithpaymentresult:url standbycallback:^(nsdictionary *resultdic) {nslog(@"result = %@",resultdic); }];

h5 支付回调方法
(demo 为例)需通过 apviewcontroller.m 中的 payorder 方法去处理同步回调返回。
注意:新版 sdk 不使用此方法、一概通过以上 appdelegate 方法。

通过 delegate 回调方法
如果商家检查发现不管支付宝客户端还是 h5 支付都是使用客户端支付 delegate 中的回调方法,基本确定商家目前是用老版本的 sdk,建议商家升级新版本的 sdk。 
注意事项
如果按照以上方案检查后,仍然无法接收同步回调,请进行以下操作:
检查自己是否在 xcode 11.3 版本的项目内新建项目运行,且在 ios 13 以上系统版本才会导致出现该问题。 apple 为了推广强制要求使用 scenedelegate 方法,导致支付宝的 sdk 无法做兼容处理。需要商家自己修改代码,使用 scenedelegate 进行接收信息,不要使用 apappdelegate 方法。在 scenedelegate 中实现 - (void)scene:(uiscene *)scene openurlcontexts:(nsset *)urlcontexts; 从这里获取跳转的 url。
建议按照支付宝文档 ,同时建议商家异步渠道去做最终的判断。
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图