iOS微信支付

- (NSString *)jumpToBizPay

{

    //============================================================

    // V3&V4支付流程实现

    // 注意:参数配置请查看服务器端Demo

    // 更新时间:20151120

    //============================================================

    NSString *urlString = @"http://wxpay.weixin.qq.com/pub_v2/app/app_pay.php?plat=ios";

    //解析服务端返回json数据

    NSError *error;

    //加载一个NSURL对象

    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];

    //将请求的url数据放到NSData对象中

    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

    if ( response != nil)

    {

        NSMutableDictionary *dict = NULL;

        //IOS5自带解析类NSJSONSerializationresponse中解析出数据放到字典中

        dict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];

        

        NSLog(@"url:%@",urlString);

        if(dict != nil){

            NSMutableString *retcode = [dict objectForKey:@"retcode"];

            if (retcode.intValue == 0){

                NSMutableString *stamp = [dict objectForKey:@"timestamp"];

                

                //调起微信支付

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

                req.partnerId = [dict objectForKey:@"partnerid"];

                req.prepayId = [dict objectForKey:@"prepayid"];

                req.nonceStr = [dict objectForKey:@"noncestr"];

                req.timeStamp = stamp.intValue;

                req.package = [dict objectForKey:@"package"];

                req.sign = [dict objectForKey:@"sign"];

                //判断是否支持微信支付

                BOOL bs = [WXApi isWXAppSupportApi];

                if (bs)

                {

                    BOOL isOK = [WXApi sendReq:req];

                    if (isOK)

                    {

                        CLog(@"调用微信支付成功");

                    }else{

                        CLog(@"调用微信支付失败");

                    }

                }else{

                    CLog(@"微信版本过低,不支持支付");

                }

                

                //日志输出

                CLog(@"appid=%@\npartid=%@\nprepayid=%@\nnoncestr=%@\ntimestamp=%ld\npackage=%@\nsign=%@",[dict objectForKey:@"appid"],req.partnerId,req.prepayId,req.nonceStr,(long)req.timeStamp,req.package,req.sign );

                return @"";

            }else{

                return [dict objectForKey:@"retmsg"];

            }

        }else{

            return @"服务器返回错误,未获取到json对象";

        }

    }else{

        return @"服务器返回错误";

    }

}

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yewave133/article/details/52383363
上一篇做分享时在AppDelegate中设置回调的方法
下一篇头像点击放大 再点击时返回原来的位置 可以看看
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭