微信支付
1.从微信官方下载api
2.在 Linked Frameworks and Libraries 添加以下文件
3.注册appid
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//微信支付
[WXApi registerApp:@"wx...."];
return YES;
}
4.监听返回
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [WXApi handleOpenURL:url delegate:self];
}
// ios: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
return [WXApi handleOpenURL:url delegate:self];
}
//监听微信回调结果
#pragma mark - WXApiDelegate
- (void)onResp:(BaseResp *)resp
{
if([resp isKindOfClass:[PayResp class]]){
//支付返回结果
switch (resp.errCode) {
case WXSuccess:
[self WXPaySuccess];
strMsg = @"支付结果:成功!";
DLog(@"支付成功-PaySuccess,retcode = %d", resp.errCode);
break;
default:
DLog(@"错误,retcode = %d, retstr = %@", resp.errCode,resp.errStr);
break;
}
}
}
5.发送参数给微信
- (void)wxPaySend:(NSDictionary*)dictionary{
//调起微信支付
PayReq* req = [[PayReq alloc] init];
req.openID = [dictionary objectForKey:@"openID"];
req.partnerId = [dictionary objectForKey:@"partnerid"];
req.prepayId = [dictionary objectForKey:@"prepayid"];
req.nonceStr = [dictionary objectForKey:@"noncestr"];
req.timeStamp = [[dictionary objectForKey:@"timestamp"] intValue];
req.package = @"Sign=WXpay";//这个参数是固定的
req.sign = [dictionary objectForKey:@"sign"];
[WXApi sendReq:req];
}