更新时间:2023-04-03 13:51:55收藏我的文档设置返回文档问题描述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复制代码91[[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。●建议按照支付宝文档 ,同时建议商家异步渠道去做最终的判断。