微信支付

作者: buzaixian程序员 | 来源:发表于2016-12-13 11:54 被阅读27次
    微信支付
    在入口类里微信支付注册
        [WXApi registerApp:WeiXin_AppId withDescription:@"demo2.0"];
    在入口类方法里添加url
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
    {
          if ([[url scheme] isEqualToString:WeiXin_AppId])
        {
           return  [WXApi handleOpenURL:url delegate:self];
        }
    }
    支付回调
    -(void)onResp:(BaseResp *)resp
    {
        if([resp isKindOfClass:[PayResp class]]){
            switch (resp.errCode) {
                case WXSuccess:
                    [self.narvigationController pushViewController:[[YDPayMoneySuccessViewController alloc]init] animated:YES];
                    break;     
                default:
                    [SVProgressHUD showView:self.window image:nil status:@"支付失败"];
                    break;
            }
        }
    }
    发送微信支付请求
    if ([WXApi isWXAppInstalled]) {
                
                        PayReq *weiXinReq = [[PayReq alloc]init];
                        weiXinReq.openID = WeiXin_AppId;
                        weiXinReq.partnerId = WeiXin_mchId;
                        weiXinReq.prepayId = self.balanceRespondEntity.backInfo.prepayId;
                        weiXinReq.package = @"Sign=WXPay";
                        weiXinReq.timeStamp = [self setTimeStamp];
                        weiXinReq.nonceStr = [WXUtil md5:[NSString stringWithFormat:@"%d",weiXinReq.timeStamp]];
    
                        //获取签名的方法,要注意
                        NSMutableDictionary *signParams = [NSMutableDictionary dictionary];
                        [signParams setObject: WeiXin_AppId          forKey:@"appid"];
                        [signParams setObject: weiXinReq.nonceStr    forKey:@"noncestr"];
                        [signParams setObject: weiXinReq.package     forKey:@"package"];
                        [signParams setObject: weiXinReq.partnerId   forKey:@"partnerid"];
                        [signParams setObject: weiXinReq.prepayId    forKey:@"prepayid"];
                        [signParams setObject:[NSString stringWithFormat:@"%d",weiXinReq.timeStamp]   forKey:@"timestamp"];
                        payRequsestHandler *payHandler  =  [[payRequsestHandler alloc]init];
                                                     //如果出现闪退加上这句话
                        [payHandler setKey:WeiXin_pkey];
                        NSString *sign = [payHandler createMd5Sign:signParams];
                        weiXinReq.sign = sign;
                    
                        [WXApi sendReq:weiXinReq];
                    }
                    else
                    {
                        [SVProgressHUD showView:self.view image:nil status:@"未安装微信"];
                    }
    

    相关文章

      网友评论

        本文标题:微信支付

        本文链接:https://www.haomeiwen.com/subject/maovmttx.html