微信支付开发IOS图文教程案例

2020-01-14 22:25:47王旭

  既然要注册微信,那么我们先到微信SDK的头文件中查看一下,发现只提供了两个注册方法,注释也写的很清楚:

微信支付开发,IOS

  然后我们导入这个头文件之后,直接根据已经有的APPID进行注册:

微信支付开发,IOS

  好,其实步骤:1、导入微信支付SDK,注册微信支付。然后2、设置微信APPID为URL Schemes前面已经做好了。

  然后我们需要进行3、发起支付,调其微信支付,在这之前,我们直接看看微信官方提供给我们的Demo:

微信支付开发,IOS

微信支付开发,IOS  最后我们找到了Demo中完整的可以直接用的这部分发起微信支付的源码:

微信支付开发,IOS

  将这段直接拷贝到我的工程中,有那么一点经验的开发者就会注意到一些,比如Demo源码使用了MRC的autorelease,你可以手动去掉,类方法可以换成实例方法,根据你的实际项目开发需求:


- (NSString *)jumpToBizPay {

//============================================================
 // V3&V4支付流程实现
 // 注意:参数配置请查看服务器端Demo
 // 更新时间:2015年11月20日
 //============================================================
 NSString *urlString = @"http://www.easck.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自带解析类NSJSONSerialization从response中解析出数据放到字典中
 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"];
 [WXApi sendReq:req];
 //日志输出
 NSLog(@"appid=%@npartid=%@nprepayid=%@nnoncestr=%@ntimestamp=%ldnpackage=%@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 @"服务器返回错误";
 }
}