⑴ ios微信支付如何判断支付成功和怎么调转到指定应用
微信回调方法中有判断,代码如下。返回到当前应用是通过URL SChemes来判断的。
if([resp isKindOfClass:[PayResp class]]){
//支付返回结果,实际支付结果需要去微信服务器端查询
strTitle = [NSString stringWithFormat:@"支付结果"];
switch (resp.errCode) {
case WXSuccess:{
strMsg = [NSString stringWithFormat:@"支付成功"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"weixinPay" object:nil];
break;
}
default:
strMsg = [NSString stringWithFormat:@"支付结果:失败!"];
break;
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
⑵ 微信开放平台创建的移动应用使用微信支付时怎么设置回调url
1各项设置应该都正抄常,因为支付袭已经ok了,在公众号后台能看到支付成功的流水。
2调的js接口,只接到了js返回的get_brand_wcpay_request:ok,设置的回调通知地址毫无反应(用日志调试)。
⑶ iOS app中起调h5微信支付,支付成功无法返回app,而是到safari浏览器
因为苹果的IOS系统是一个闭环的系统,苹果公司禁止任何第三方支付在其商城购买东西;
如果您需要在苹果手机的APP或者这种H5中购买
可以用safari浏览器访问该网站的网页,在网页中购买,此时就可以使用微信支付了;
需要注意的是,这种是PC端的购买方式,所以会出现二维码,您需要把该二维码保存,然后再用微信的扫一扫功能来识别
⑷ 友盟第三方登录ios微信登录和微信支付的回调怎么写
1. 首先在微信开发者页面申请一个APPID。一定要微信审核通过才能使用!
2. 在后台【应用管理-设置-分享设置】中将申请到的微信ID录入到【分享微信AppID】。
3. 保存后系统会编译您的应用,编译后升级您的应用即可。
具体操作流程:
一、申请微信ID:
1.进入微信开放平台
2. 点击页面左上端进行注册或者登陆。
3. 点击页面左下端【移动应用开发】,进入应用接入的页面详情。
4. 填写应用名称和应用的基本信息。
其中的所需上传的图标的水印图片可以从app制作者的管理后台中获取具体路径【应用管理】->【应用推广】。
5. 完善资料。
6. 签名和包名。微信android签名:签名直接复制上面的签名代码即可,一定要记住,复制时不要有多余空格哦。包名类似:com.jh.APPXXX.news,由系统生成,XXX是一串数字,具体包名可以在【应用管理-设置-分享设置】页面获得。填写完毕后,点击【提交】就完成申请了。微信平台会有1-7个工作日的审核周期,通过后即可将appid绑定到平台中。
二、如何绑定微信APPID将按照上面申请的微信appid添加到【应用管理-设置-分享设置】页面的分享微信AppID字段,添加后保存即可。
注意:
申请APPID时,还需要上传应用图标,请提前准备,否则不能提交审核,这些图标在【应用管理-设置-分享设置】页面提供下载。
1)水印图标,水印图标出现在微信聊天界面消息气泡底部,
28*28 png格式 灰度图(没有彩色的图)2)高清图标,高清图标出现在聊天界面附件栏中,
108*108 png格式
⑸ 微信支付后怎么返回指定界面 ios开发
在以下两个方法中实现(AppDelegate)
//弃用的返回
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
NSLog(@"url1=%@",url);
return [WXApi handleOpenURL:url delegate:self]||[TencentOAuth HandleOpenURL:url];
}
//返回
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSLog(@"URL=%@",url);
return [WXApi handleOpenURL:url delegate:self]||[TencentOAuth HandleOpenURL:url];
}
⑹ iOS9.0+,调起微信支付后,不会自动返回上一APP,点击左上系统自带返回上一APP,接收不到回
我用的计时器解决的这个问题.界面跳转到微信之前开始通过计时器.不断向服务器查询微信支付状态.
-(void)timer{
timer = [NSTimer scheledTimerWithTimeInterval:5 target:self selector:@selector(timerTap) userInfo:nil repeats:YES];
//如果计时器写在其他方法里 需要加上这个
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
}
-(void)timerTap{
dataNameStr = @"支付状态查询";
address = @"xxxxxxx/orderPay/state";
[self requestData];
}
当从导航栏返回时,会返回之前跳转微信的界面, 去服务器查支付是否成功.如果成功做处理.
⑺ ios怎么实现微信支付完成之后自动返回到app
认真查看参数 我我做的时候也出现,肯定是参数有问题 多半是回调参数的问题
⑻ 微信h5支付怎么在app调起微信 ios
在浏览器中调起微信支付,一般情况下,是在后台接入微信支付的接口,然后当用户需要支付的时候,在前台显示一个支付的二维码,用户使用微信支付的扫一扫功能,扫描该二维码,获取相应的支付信息,使用手机进行支付
⑼ webview里面微信支付的回调怎么处理
1,微信支付的过程是商家发起支付请求——微信支付后台返回对应的二维码——用户扫描付款——后台确定付款成功——发起回调通知商家——商家系统返回应答;
2,当商家系统未返回应答时,系统就会多次发起回调,以免商家的系统无法获得交易结果;
3,出现此种问题的原因是商家的系统网络信号不好,可以更换为4G网络,就不会出现这种问题了
⑽ 用urlscheme打开微信支付,回调怎么做
微信支付的回调
首先,支付回调API的方法,这个方法中完全是按照官方文档写的,自己基本上不需要操作
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
//如果极简开发包不可用,会跳转支付宝钱包进行支付,需要将支付宝钱包的支付结果回传给开发包
if ([url.host isEqualToString:@"safepay"]) {
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
//【由于在跳转支付宝客户端支付的过程中,商户app在后台很可能被系统kill了,所以pay接口的callback就会失效,请商户对standbyCallback返回的回调结果进行处理,就是在这个方法里面处理跟callback一样的逻辑】
}[[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {
//【由于在跳转支付宝客户端支付的过程中,商户app在后台很可能被系统kill了,所以pay接口的callback就会失效,请商户对standbyCallback返回的回调结果进行处理,就是在这个方法里面处理跟callback一样的逻辑】
}];
}
if ([sourceApplication isEqualToString:@"com.tencent.xin"]) {
//微信支付回调
return [WXApi handleOpenURL:url delegate:self];
}
//跳转处理
BOOL result = [UMSocialSnsService handleOpenURL:url];
if (result == FALSE) {
//调用其他SDK,例如支付宝SDK等
}
return result;
}
最后微信会调用下面这个方法,我是在这个方法中做的操作,由于这个方法是在AppDelegate中,如果在这里跳转到自己指定的页面,有些困难,
于是就在这个方法中发通知到调起支付的页面,再进行页面跳转操作。
//回调方法
-(void) onResp:(BaseResp*)resp
{
NSString *strMsg = [NSString stringWithFormat:@"errcode:%d", resp.errCode];
NSString *strTitle;
if([resp isKindOfClass:[SendMessageToWXResp class]])
{
strTitle = @"发送媒体消息结果";
}
if([resp isKindOfClass:[PayResp class]]){
//支付返回结果,实际支付结果需要去微信服务器端查询
strTitle = [NSString stringWithFormat:@"支付结果"];
switch (resp.errCode) {
case WXSuccess:{
strMsg = @"恭喜您,支付成功!";
[MYNotificationCenter postNotificationName:@"weixinPaystatusSuccess" object:nil userInfo:@{@"status":@"success"}];
break;
}
case WXErrCodeUserCancel:{
strMsg = @"已取消支付!";
[MYNotificationCenter postNotificationName:@"weixinPaystatusSuccess" object:nil userInfo:@{@"status":@"cancle"}];
break;
}
default:{
strMsg = [NSString stringWithFormat:@"支付失败 !"];
[MYNotificationCenter postNotificationName:@"weixinPaystatusSuccess" object:nil userInfo:@{@"status":@"cancle"}];
break;
}
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alert show];
}
}
由于我们的取消和失败,2种状态的处理结果都是一样的,所以就用了相同的通知。
由于在调起支付页面,在调起前就已经注册了通知,现在支付完后,就可以收到支付状态的通知了。下面就很简单了吧
最后在说一下,
由于我们的付款性质不一样,所以就遇到了同样的支付成功状态,由于不同的支付类型要跳转的页面也是不同的,这就要求在AppDelegate中的那个处理方法中识别出,不同的支付类型,(如充值,购物等)但是这个方法是微信api回调的方法,它只返回成功,取消,失败等状态。那就只能是支付前做个识别标示,但是由于支付跳到api了,脱离了应用,这个识别标示又无法直接传过来。我想的方法就是保存一个支付标示:
[[NSUserDefaults standardUserDefaults] setObject:@"CHONGZHI" forKey:@"PAYTYPE"];
在每个类型的支付调起方法中,保存一下不同的key,然后再那个
-(void) onResp:(BaseResp*)resp