iOS app WebView微信H5支付,跳浏览器问题
发布网友
发布时间:2022-09-07 04:57
我来回答
共1个回答
热心网友
时间:2023-11-09 20:18
因为微信H5 支付有个redirect_url = “”;当这个值带有http 的时候支付完成或者取消支付的时候,返回都打开了浏览器。
解决:1.可以修改 redirect_url 的值,修改成跳入自己app的scheme。
2.如果无法修改 redirect_url 的话,只能在webView 加载时拦截连接进行替换。注意一点:自己app Scheme地址得和H5支付填写的域名保持一致。
如下:
if ([scheme hasPrefix:@"https://wx.tenpay.com/"] && ![scheme hasSuffix:[NSString stringWithFormat:@"redirect_url=自己appscheme://"]]) {
decisionHandler(WKNavigationActionPolicyCancel); NSString*redirectUrl =nil;
if([schemecontainsString:@"redirect_url="]) {
NSRangeredirectRange = [schemerangeOfString:@"redirect_url"];
redirectUrl = [[schemesubstringToIndex:redirectRange.location]stringByAppendingString:[NSStringstringWithFormat:@"自己appscheme://"]];
}else{
redirectUrl = [schemestringByAppendingString:[NSStringstringWithFormat:@"自己appscheme://"]];
}
NSMutableURLRequest *newRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:redirectUrl] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30];
newRequest.allHTTPHeaderFields= navigationAction.request.allHTTPHeaderFields;
newRequest.URL= [NSURLURLWithString:redirectUrl];
[webViewloadRequest:newRequest];
return;
}
如果返回app还得加载成功H5页面成功页面的话,可以保存或者拿到成功页面地址,进入app进行第二次加载。
iOS app WebView微信H5支付,跳浏览器问题
因为微信H5 支付有个redirect_url = “”;当这个值带有http 的时候支付完成或者取消支付的时候,返回都打开了浏览器。解决:1.可以修改 redirect_url 的值,修改成跳入自己app的scheme。 2.如果无法修改 redirect_url 的话,只能在we...
iOS解决调用微信h5支付无法直接返回APP的问题
在进行微信支付时,会收到一个特殊的链接,如“wx.tenpay.com/cgi-bin/m...”。这个链接是微信提供的支付成功或取消支付后的返回跳转链接,但直接加载webView会导致提示信息。为解决这一问题,需要在代码中设置Referer请求头参数。通常,微信会提供一个示例代码以指导开发者如何正确设置Referer。引入关键...
iOS开发-处理H5拉起微信支付返回到Safari情况
以WKWebview为例 然后在target中配置urlType,如下(注仅为xxxxxxxxx部分,不包含://):至此,问题解决
iOS APP内嵌Webview跳转支付宝,完成后跳回APP
由于项目是通过WKWebView内嵌的h5来实现,而且需要进行支付宝支付。我的方法是 :对URL进行解码得到string,取出?之后的字符串,转换成字典,再取出字典中key为fromAppUrlScheme对应的value,再将string中的value替换为自己APP对应的URLSchemes,再将该string进行,URL编码,得到一个新的URL,供跳转。
iOS-APP实现微信H5支付总结
3、中间页进行H5权限的校验,安全性检查( 具体错误见微信官方文档 )4、如果权限校验成功,微信支付中间页会发起支付请求。请求完毕跳到回调页面(由redirect_url决定)。APP需要在webView中监听这个请求,打开微信进行支付。如: weixin://wap/pay?prepayid%3Dwx2718114258281033efb8751f1574826586&package=...
app中使用h5支付
支付宝的 h5 支付,返回一个 http 链接,是可以直接在 webview 中使用的,url 会重定向最终指向到支付宝的专属协议上。这里建议直接在 app 上直接通过 new webview 方式实现。通过微信 h5 支付也是可以生成支付链接的,如果我们直接使用这个 url 的话,一定会抛一个错误“商家参数格式有误,请联系...
iOS H5调用微信(支付宝)支付与回调
第一种 调用支付宝网页支付 (问题 支付成功后回调到了游览器,无法返回APP,解决如下) //以WKWebView为例 - (void)webView:(WKWebView*)webView decidePolicyForNavigationAction:(WKNavigationAction*)navigationAction decisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler { WKNavigationActionPolicy ...
微信小程序webview内H5多级跳转没有返回键问题
我们可以在H5页面使用jssdk中H5页面跳转到小程序页面的方法wx.miniProgram.navigateTo,然后再携带一个url参数
微信H5支付流程
1. 当前调起H5支付的referer为空导致,一般是因为直接访问页面调起H5支付,请按正常流程进行页面跳转后发起支付,或自行抓包确认referer值是否为空 2. 如果是APP里调起H5支付,需要在webview中手动设置referer,如( Map<string> extraHeaders = new HashMap<string>(); extraHeaders.put("Referer"...
支付宝和微信h5支付成功或者取消支付返回App
iOS端开启了采坑之旅, 本文记录历程和结果, 看完此文能解决您90%的问题, ,有相关需求的朋友也可以这样来操作.App内部,采用了WKWebView作为主体来加载H5内容, 用了一个 UIWebView 来重定向 HKH5HomeWebChatView.h HKH5HomeWebChatView.m 总结:一、支付宝的返回相对简单 1.