第四步:在使用微信的地方调用支付方法
#pragma mark 2.2.14(10)使用微信进行付款,获取微信加密信息
- (void)getWebResponsePayWeixinInfo {
NSDictionary *parameters =@{@"key" :appDelegate.userKeyString,
@"foundRecordId" : [self.payInfoDictobjectForKey:@"foundRecordId"]};
[MBProgressHUDshowMessage:@""];
[WebDataResponseInterfaceSessionManagerPostWebDataWithApi:WEBInterFace_Good_CreateWeiXinPayOrderandParameters:parameters andSuccess:^(id successObject) {
MYLOG(@"%@", successObject);
[MBProgressHUDhideHUD];
if ([successObject[@"status"]isEqualToString:@"success"]) {
successObject = [successObject objectForKey:@"value"];
// 微信支付
//需要创建这个支付对象
PayReq *req = [[PayReqalloc] init];
//由用户微信号和AppID组成的唯一标识,用于校验微信用户
req.openID = successObject[@"appid"];
// 商家id,在注册的时候给的
req.partnerId = [successObjectobjectForKey:@"partnerid"];
// 预支付订单这个是后台跟微信服务器交互后,微信服务器传给你们服务器的,你们服务器再传给你
req.prepayId = [successObjectobjectForKey:@"prepayid"];
// 根据财付通文档填写的数据和签名
//这个比较特殊,是固定的,只能是即req.package = Sign=WXPay
req.package = [successObjectobjectForKey:@"package"];
// 随机编码,为了防止重复的,在后台生成
req.nonceStr = [successObjectobjectForKey:@"noncestr"];
// 这个是时间戳,也是在后台生成的,为了验证支付的
req.timeStamp = [[successObjectobjectForKey:@"timestamp"]doubleValue];
// 这个签名也是后台做的
req.sign = [successObjectobjectForKey:@"sign"];
//发送请求到微信,等待微信返回onResp
[WXApisendReq:req];
} else {
[MBProgressHUDshow:[successObject objectForKey:@"value"]icon:nilview:self.view];
}
} andFailure:^(NSError *error) {
[MBProgressHUDhideHUD];
MYLOG(@"error: %@", error);
}];
}
如有疑问请留言或者到本站社区交流讨论,感谢阅读, 希望通过本文能帮助到大家,谢谢大家对本站的支持!
注:相关教程知识阅读请移步到IOS开发频道。










