⑴ 用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
⑵ 微信付款码的URL Scheme参数是什么
微信付款码的URL Scheme参数是由微信按照一定规则生成的一串18位纯数字,生成规则未知(肯定包含了微信用户身份标识)。
付款码的用途与商品条码是一样的,是用作智能POS、把枪等商户端线下设备扫微信用户条码/二维码使用的,不是用于app调用使用的,也无所谓URL Scheme。按照微信支付的官方叫法,此类支付方式叫刷卡支付。
微信支付的扫码支付倒是提供了URL Scheme,具体参考官方文档。
微信(WeChat)是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序,由张小龙所带领的腾讯广州研发中心产品团队打造。
微信支持跨通信运营商、跨操作系统平台通过网络快速发送免费(需消耗少量网络流量)语音短信、视频、图片和文字,同时,也可以使用通过共享流媒体内容的资料和基于位置的社交插件“摇一摇”、“朋友圈”、”公众平台“、”语音记事本“等服务插件。
微信URL Schem其他参数:
weixin://dl/scan 扫一扫。
weixin://dl/feedback 反馈。
weixin://dl/moments 朋友圈。
weixin://dl/settings 设置。
weixin://dl/notifications 消息通知设置。
weixin://dl/chat 聊天设置。
⑶ 微信URL Scheme详细参数哪里有
测试应用为了简单能够快速测试,另外新建一个应用来测试吧.这个应用非常简单,只有一个简单的UIWebView的Controller.ViewControler代码link-(void)viewDidLoad{[superviewDidLoad];//,typicallyfromanib.self.view.backgroundColor=[UIColorwhiteColor];NSString*htmlPath=[[NSBundlemainBundle]pathForResource:@"ExampleApp"ofType:@"html"];NSString*appHtml=[:htmlPathencoding:NSUTF8StringEncodingerror:nil];NSURL*baseURL=[NSURLfileURLWithPath:htmlPath];[self.webViewloadHTMLString:appHtmlbaseURL:baseURL];}这段代码很简单吧,加载一个本地的HTML文件来模拟一下浏览器.请新建一个名为ExampleApp.html的文件加入到项目中.HTML代码linkhtml{font-family:Helvetica;color:#222;}h1{color:steelblue;font-size:24px;margin-top:24px;}button{margin:03px10px;font-size:12px;}.logLine{border-bottom:1pxsolid#ccc;padding:4px2px;font-family:courier;font-size:11px;}DemoURLSchemeTest
⑷ 别人扫码微信付款码进行支付,为何迟迟不到账
如果你的网络是正常的,那么你说迟迟不到账只有一个原因:对方根本没有付款。对方说他已经付款,那么你叫他立马把付款记录截图给你看,他肯定拿不出。
⑸ 如何从微信浏览器中跳转到APP指定页面
方法一:URL Scheme
将参数配置在url scheme后面,唤醒app再进行页面跳转逻辑。
但残酷的现实是QQ和微信都回把url scheme 唤醒app这种方式给禁了。答
方法二:meta标签
meta标签的格式如下:
这样添加meta标签后的网页,使用safari打开的时候,就会在顶部显示自己app的导航条。
⑹ iphone快捷指令微信付款码
该指令支付在微信里是不可以付款的,必须通过账号和密码才可以的。
⑺ 怎么用java调用微信支付接口
1.调用微信接口授权
授权这里有两种方式,一种是snsapi_bases,另一种是snsapi_userinfo,这里官方文档介绍的比较清楚,可以参考官网
⑻ 捷径怎么设置微信扫码付款
用户扫描商户展示在各种场景的二维码进行支付。
步骤1:商户根据微信支付的规则,为不同商品生成不同的二维码,展示在各种场景,用于用户扫描购买。
步骤2:用户使用微信“扫一扫扫描二维码后,获取商品支付信息,引导用户完成支付。
步骤3:用户确认支付,输入支付密码。
步骤4:支付完成后会提示用户支付成功,商户后台得到支付成功的通知,然后进行发货处理。
⑼ 谁有微信个人中心的URLscheme
所以有微信个人中心的这个好像说我们大家都是不太了解这样的了。
⑽ 苹果手机怎么打开微信的url scheme
测试应用
为了简单能够快速测试,另外新建一个应用来测试吧.这个应用非常简单,只有一个简单的UIWebView的Controller.
ViewControler代码 link- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = [UIColor whiteColor];
NSString* htmlPath = [[NSBundle mainBundle] pathForResource:@"ExampleApp" ofType:@"html"];
NSString* appHtml = [NSString stringWithContentsOfFile:htmlPath encoding:NSUTF8StringEncoding error:nil];
NSURL *baseURL = [NSURL fileURLWithPath:htmlPath];
[self.webView loadHTMLString:appHtml baseURL:baseURL];
}
这段代码很简单吧,加载一个本地的 HTML 文件来模拟一下浏览器.请新建一个名为 ExampleApp.html的文件加入到项目中.
HTML代码 link<!doctype html>
<html><head>
<style type='text/css'>
html { font-family:Helvetica; color:#222; }
h1 { color:steelblue; font-size:24px; margin-top:24px; }
button { margin:0 3px 10px; font-size:12px; }
.logLine { border-bottom:1px solid #ccc; padding:4px 2px; font-family:courier; font-size:11px; }
</style>
</head><body>
<h1>Demo</h1>
<script language="javascript">
var timeout;
function open_appstore() {
window.location='如果没有安装你的应用,那么去哪里下载呢?这里写下载的URL';
}
function try_to_open_app() {
timeout = setTimeout('open_appstore()', 300);
}
</script>
<a onClick="javascript:try_to_open_app();" href="URLScheme://">URLSchemeTest</a>
</body></html>