您的位置:首页 > 移动开发 > 微信开发

iOS开发之微信支付

2015-06-01 13:31 597 查看
具体支付代码:

//调起微信支付

PayReq* req = [[[PayReq alloc] init]autorelease];

req.openID = APPI_ID;

req.partnerId = PARTNER_ID;

req.prepayId = prePayid;

req.nonceStr = nonce_str;

req.timeStamp = now;

req.package = package;

req.sign = sign;

[WXApi safeSendReq:req];

不得不吐槽,微信支付的SDK,这里连个代理都没有,所以,你想获取支付后的结果的返回信息,需要去AppDelegate里,添加如下代码,添加微信的代理:

(BOOL)application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

{

return [WXApi handleOpenURL:url delegate:self];

}

然后,再实现这个方法:

-(void) onResp:(BaseResp*)resp

1

通过这个方法,你就可以获取微信支付后的信息了。但是如果这样,所有的支付代码都在AppDelegate里,不好,至少微信给的例子就是这样。我的方法是添加通知,代码如下:

-(void) onResp:(BaseResp*)resp

{

if ([resp isKindOfClass:[PayResp class]])

{

PayResp response = (PayResp )resp;

// NSString *strTitle = [NSString stringWithFormat:@”支付结果”];

// NSString *strMsg = [NSString stringWithFormat:@”errcode:%d”, response.errCode];

//

// UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle

// message:strMsg

// delegate:self

// cancelButtonTitle:@”OK”

// otherButtonTitles:nil, nil];

// [alert show];

switch (response.errCode) {
case WXSuccess: {
NSNotification *notification = [NSNotification notificationWithName:ORDER_PAY_NOTIFICATION object:@"success"];
[[NSNotificationCenter defaultCenter] postNotification:notification];
break;
}

default: {
NSNotification *notification = [NSNotification notificationWithName:ORDER_PAY_NOTIFICATION object:@"fail"];
[[NSNotificationCenter defaultCenter] postNotification:notification];
break;
}
}
}


}

然后,在支付那个VC,添加通知

pragma mark - tabBar隐藏

(void)viewWillAppear:(BOOL)animated {

[super viewWillAppear:animated];

if([WXApi isWXAppInstalled]) // 判断 用户是否安装微信

{

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getOrderPayResult:) name:ORDER_PAY_NOTIFICATION object:nil];//监听一个通知

}

}

pragma mark - tabbar还原

(void)viewWillDisappear:(BOOL)animated

{

[super viewWillDisappear:animated];

[[NSNotificationCenter defaultCenter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: