ios 银联支付回调 支付之后不触发回调

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
支付之后,会崩溃到
- (void)processOrderWithPaymentResult:(NSURL *)resultUrl
standbyCallback:(CompletionBlock)completionB 这个地方。
错误提示:Cannot snapshot view (&UIKeyboardImpl: 0x102b26da0; frame = (0 0; 375 258); layer = &CALayer: 0x&&) with afterScreenUpdates:NO, because the view is not in a window. Use afterScreenUpdates:YES.
遍寻网络,没有找到答案,特来请教,希望各位大哥大姐,不吝赐教。。。如果又是什么问的不清楚的地方,请大家指出,我再补充。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
看代码错误提示是截屏报错了,不知道你是否用了截屏的代码。可能截到了键盘。键盘和当前的页面不在一个window上所以。导致了错误,不过我也不太清楚到底是问题。你可以试着再拉起支付户端前使用下面的代码试试
for (UIWindow* window in [UIApplication sharedApplication].windows) {
if (![window respondsToSelector:@selector(screen)] || window.screen == [UIScreen mainScreen]) {
[window drawViewHierarchyInRect:window.bounds afterScreenUpdates:YES];
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
我也出现了这样的情况,我是在刚刚调起支付宝的时候出现了这个错误,还没有解决,我的手机系统是iOS10.1的,求解呀!!!急急急急急急急急急!!!!
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:2277人阅读
IOS开发(62)
前言:由于支付宝全面升级,所以相应的从老版本升级到新版本,结果收不到支付回调。
在这里还给自己挖了个坑,因为由于Xcode8的原因,我将系统日志屏蔽掉了,然后导致NSLog打印不出来(因为是复制demo过来的),一直以为收不到支付回调。
原因:发现原来支付宝升级后
//调用支付结果开始支付
[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
MyLog(@&reslut = %@&,resultDic);
}];这个方法不再处理支付回调,而是转到了AppDelegate
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)
//9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary&NSString*, id& *)
在这边进行处理支付回调。
#pragma mark 支付宝支付回调
- (void)alipayProcessOrderWithPaymentResult:(NSDictionary *)resultDic
NSString *resultStatus = [resultDic objectForKey:@&resultStatus&];
NSString *
if ([resultStatus intValue] == 9000) {
memo = @&支付成功!&;
switch ([resultStatus intValue]) {
case 4000:
memo = @&失败原因:订单支付失败!&;
case 6001:
memo = @&失败原因:用户中途取消!&;
case 6002:
memo = @&失败原因:网络连接出错!&;
case 8000:
memo = @&正在处理中...&;
memo = [resultDic objectForKey:@&memo&];
[IWAlert singleAlertWithTarget:[UIApplication sharedApplication].keyWindow.rootViewController title:@&支付宝支付& message:memo actionTitle:@&确定& success:nil];
支付宝SDK及demo下载地址:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:29539次
排名:千里之外
原创:64篇
转载:11篇
(1)(2)(1)(4)(3)(3)(22)(39)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'iOS集成微信支付的一些坑(onResp不回调、闪回等)
iOS集成微信支付总体来说还是比较容易的(如果没有那些坑的话),所有文档都在:
pay weixin qq com wiki doc api app php?chapter=8_1甚至只要看: https:
pay weixin qq com wiki doc api app php?
iOS集成微信支付总体来说还是比较容易的(如果没有那些坑的话),所有文档都在:
https://pay./wiki/doc/api/app.php?chapter=8_1
甚至只要看:
https://pay./wiki/doc/api/app.php?chapter=8_3
https://pay./wiki/doc/api/app.php?chapter=8_5
这两部分就可以搞定。
遇到的大部分问题来自于另一个非常常用的第三方:友盟分享
已经集成了友盟分享
只要下载微信sdk,并复制到友盟目录下的UMSocial_Sdk_Extra_Frameworks/Wechat文件夹中,替换存在文件。
发起支付之后只显示一个确定按钮
就是这样,没有任何错误提示,断点返回的UrlSchemes,也只有一个ret=-2,官方文档解释为:
“无需处理。发生场景:用户不支付了,点击取消,返回APP。”
遇到这个问题,基本就是发起请求的参数传错了。
PayReq *request = [[[PayReq alloc] init] autorelease];
request.partnerId = @"";
request.prepayId= @"fc314aa427";
request.package = @"Sign=WXPay";
request.nonceStr= @"a462b76eed6e13c64b4fd1c";
request.timeStamp= @"";
request.sign= @"DD2B03AD8CB16E7A256";
[WXApi sendReq:request];
对照文档仔细排查吧,一定要注意大小写,另外,sign签名时,参数名要用小些(此处官方文档有错误,文档写的用驼峰那种:https://pay./wiki/doc/api/app.php?chapter=8_3 步骤3-参与签名的字段名,此处感谢 @挨踢实习生) 。
发起支付后,打开微信,然后立即返回到了你的程序。
原因是项目同时集成了友盟,注册微信的方法写在了初始化友盟分享的前面,调换一下位置即可。
//向微信注册,需要写到初始化友盟分享的后面
[WXApi registerApp:@"wx" withDescription:@"**weixinpay"];
//你的微信appid
onResp不回调
这个问题依然来自跟友盟分享的冲突。虽然友盟提供了一个
+(BOOL)handleOpenURL:(NSURL *)url wxApiDelegate:(id)wxApiD
方法,但是通过此方法注册的delegate并没有被回调(这个有可能在不同版本,友盟sdk版本上效果不同)。
解决方法就是判断一下回调是不是微信支付:
//url Schemes回调
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
return [self applicationOpenURL:url];
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
return [self applicationOpenURL:url];
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options
return [self applicationOpenURL:url];
- (BOOL)applicationOpenURL:(NSURL *)url
if([[url absoluteString] rangeOfString:@"wx://pay"].location == 0) //你的微信开发者appid
return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
return [UMSocialSnsService handleOpenURL:url wxApiDelegate:[WXApiManager sharedManager]];做银联支付遇到的问题!
;首先你要知道,付款给谁,你不和银行签协议或者开通,你没有商户号,客户给钱谁。
另外你不用注册dll,把这些dll复制到bin目录下面。或者直接在项目里面添加引用这些dll。
(在项目上右击在弹出窗口选添加引用,然后找你的dll、)
我在问一下啊,如果我做银联的话,是不是付款的时候,用户
-12:31&&&[]
、手机控件支付 手机控件支付更简单,不用组装报文,但是流程上与网页支付不同,需要先跟银联交互一次,拿到tn(银联受理订单号),然后客户端就可以调起银联手机控件进行支付了。 三、无跳转支付 介绍无跳转支付之前,需要先了解银联的两个概念:
后台消费 前台消费。
前台消费:通过浏览器提交请求到银联的消费
18:25&&&[]
cancelButtonTitle:@&取消& destructiveButtonTitle:@&支付宝& otherButtonTitles:@&银联支付&, @&微信支付&, nil]; & &nbsp
08:50&&&[]
本地测试正常,上传服务器后出错
异常详细信息:&System.Security.Cryptography.CryptographicException:&系统找不到指定的文件。
回复讨论(解决方案)
找不到指定文件,那就看看你是否用了本地文件,没有上传,或者用了
22:09&&&[]
我做了一个银联在线支付的程序。测试的时候中途出错了。提示“验证签名错误&-109&”&我看了下API文档,说是加密失败。
我贴我的代码出来求大神看看是不是我还需要写什么东西才算完整,我第一次弄这个,不甚感激!,先谢谢大家的帮助了!
提交页面:
-17:29&&&[]
要求添加支付银行,选用银联支付,对与业务流程方面不了解,求指导,
银联给了Demo,但是只是到订单生成部分,包括数据的签名,打包,传送,
后续这个交易流程是怎样的?
选择银行的页面要我们写吗?
当然要你写,难道银行写。
银行只保证接收你的数据,然后做扣款,给你扣款的结果,然后显示给客户
-15:52&&&[]
最大的区别:支付宝支付是在支付宝开发平台申请就可以了,银联需要交钱才行!
支付宝支付开发:/order/productDetail.htm?productId=9654&tabId=2#ps-tabinfo-hash 银联
15:37&&&[]
。这样一个非开放式的技术标准,遭到来自移动支付市场内各个主体的反对和抵制。   与此同时,由于银联标准更为开放,适用于不同行业通联通用。所以,它能够获得中国联通、中国电信两家运营商及数十家银行的支持。NFC手机支付市场若想做大,就需要解决标准统一、安全测试等各种各样的问题。移动支付市场不需要一个行业
11:28&&&[]
&&如题,先做的银联支付,可以支付成功,且银行卡中金额也正常扣款。
&&但是支付成功后,后台返回页面没有执行,只返回了前台显示页面。。
&&即:PageRetUrl&这个前台交易页面可以正常跳转
20:23&&&[]
银联支付技术文档地址 支付流程图 调用步骤 注意事项
前段时间项目中使用到了微信支付和支付宝支付,所以顺便把另外一个主流的支付(银联支付)也学习了一下,再次把此次学习的知识作于一个记录。 银联支付技术文档地址 官方文档地址:https
09:07&&&[]
支付文档 微信sdk 总体来说微信支付需要审核的比较麻烦,我也没有去弄一个号亲自测试一下,按照文档demo去走一般不会出什么问题。 小记 可能遇到银联c++编译问题,把对应的viewcontroller切换成.mm,编译看看。若有CreateRSADataSigner arm64的,请将支付宝给的
22:46&&&[]
我在网站上嫁接了支付宝的网银支付接口,传参的时候,有几个必填的参数
默认支付方式
string&paymethod&=&&bankPay&;
//默认网银
string&defaultbank&=&nbsp
19:38&&&[]iOS&集成银联支付(绕过文档的坑,快速集成)
当初集成支付宝的时候,觉得见了这么丑的代码,加上这么难找的下载地址,在配上几乎为零的文档,寒哥就要吐血了。
下午去集成银联,才知道血吐的早了。
下载地址:
其实我找了半个小时 也不知道怎么就下载好了
这个我在Chrome的下载记录里找到的
解压之后会有这样的目录结构
Paste_Image.png
文档在下面
sdk在upmp_iPhone里面
Paste_Image.png
1、SDK 说明
SDK 分为以下两个版本:
1.支持纯无卡交易静态库,以下简称&UPPayPlugin,包含文件:
UPPayPlugin.h
&UPPayPluginDelegate.h
&libUPPayPlugin.a
2.支持纯无卡交易和 VIPOS 音频口支付静态库,以下简称
UPPayPluginPro,
UPPayPluginPro.h
UPPayPluginDelegate.h
&libUPPayPluginPro.a
3、添加 SDK 包
根据商户选择的SDK版本,将sdk/inc目录和sdk/libs目录下对应版本的三个文件添加到 UPPayDemo 工程中;
b) 如 果 你 选 择 的 是 UPPayPlugin 版 本 , 添
加 QuartzCore.framework 、Security.framework 到工程中;
c) 如 果 你 选 择 的 是 UPPayPluginPro 版 本
, 添 加 QuartzCore.framework 、AudioToolbox.framework,
CoreAudio.framework 、 MediaPlayer.framework,AVFoundation.framework
和 Security.framework 到工程中;
d) 在工程的 Build Settings 中找到 Other
Linker Flags 中添加-ObjC 宏;(这个可能是遗留的问题 我就没写 不报错)
Paste_Image.png
4、调用插件
1.在需要调用支付控件的源文件内引用头文件 UPPayPlugin.h
或 UPPayPluginPro.h(注意:如果工程的 compile source as 选项的值不是
Objective&C++,则引用此头文件的文件类型都要改为.mm)
2.通过调用
(BOOL)startPay:(NSString)tn
mode:(NSString)mode
viewController:(UIViewController*)viewController
delegate:(id)
3.实现控件的调用
处理支付结果
银联手机支付控件有三个支付状态返回值:success、fail、cancel,分别代表:支付成功、支付失败、用户取消支付。这三个返回状态值以字符串的形式作为回调函数参数(NSString)result
返回。通过在工程中添加头文件“UPPayPluginDelegate.h”,在处理交易结果的界面,实现
UPPayPluginDelegate接口,根据该头文件中的回调函数:-(void)UPPayPluginResult:(NSString)result来实现回调方法,从而可以根据支付结果的不同进行相关的处理。
1.将 xcode 工程中 Build Setting -&
Apple LLVM compiler Language 标签下的 C++ Language Dialect 和 C++
Standard Library 属性值修改为 Compiler Default
2.将涉及到引用 UPPayPlugin.h
的源文件的后缀名都改为.
3.参照demo,检查工程设置 Search Paths 里的
Framework Search Paths、Header Search Paths、Library Search Paths
的路径设置,看设置路径是否正确
QuartzCore.framework、AudioToolbox.framework, CoreAudio.framework、
MediaPlayer.framework, AVFoundation.framework 和
Security.framework
5.工程的 Build Settings 中找到 Other
Linker Flags 中添加-ObjC 宏;
上面提到的几点网上都可以找到,如果已经正确设置,还是编译不通过,那么赶紧检查下 项目targets
对应的sdk版本,选择7.0以下的,目前银联的sdk貌似还不支持7.0,
银联支付目测只需要2个参数 1 tn 其实就是订单号 2 mode
是测试环境还是线上环境
和支付宝不同的是 支付宝要求本地把订单的信息书写完毕 调起sdk支付即可
银联是我把一些生成订单的信息 如 付款方 收款方 订单描述 金额等信息传递到服务器 由服务器生成一个订单号
然后客户端调起sdk进入支付
mode 竟然是个死的字符串 真是醉了 "00"
表示线上环境"01"表示测试环境
返回的代理结果 更是坑爹
:success、fail、cancel,分别代表:支付成功、支付失败、用户取消支付
测试环境 账号
提供测试使用卡号、手机号信息(此类信息仅供测试,不会发生正式交易)招商银行预付费卡:卡号:45
6785密码:111101
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 ios 银联支付回调通知 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信