iOS开发之微信支付

具体支付代码:
//调起微信支付
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值