第三方支付
2016-07-13 本文已影响51人
陪你看日出去
1、支付宝的支付
- (void)aliPay:(Product*)pro
{
//获取订单编号
NSString *orderStr = [[AliPayManager shareManager] generateOrderString:pro];
//进行支付
[[AliPayManager shareManager] payOrder:orderStr scheme:@"PaymentDemo" complete:^(NSDictionary *resultDict) {
NSString *statusStr = resultDict[@"resultStatus"];
if ([statusStr isEqualToString:@"9000"]) {
NSLog(@"支付成功");
}
else if ([statusStr isEqualToString:@"8000"])
{
NSLog(@"正在处理");
}
else if ([statusStr isEqualToString:@"6001"])
{
NSLog(@"用户中途取消支付");
}
else if ([statusStr isEqualToString:@"6002"])
{
NSLog(@"网络故障支付失败");
}
else if ([statusStr isEqualToString: @"4000"])
{
NSLog(@"支付失败");
}
}];
}
2、银联支付
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//向我们公司自己的服务器发出请求,回调到的responseObject表示的就是服务器返回来的交易流水号,
[manager GET:@"http://101.231.204.84:8091/sim/getacptn" parameters:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
//交易流水号
NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
//通过交易流水号发起银联支付
/**
* 参数一:交易流水号
* 参数二:回调的URL scheme
* 参数三:00表示正式环境,01表示测试环境
* 参数四:执行代理的对象
*
*/
[[UPPaymentControl defaultControl] startPay:str fromScheme:@"PaymentDemo" mode:@"01" viewController:self];
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];
3、微信支付
//为了模拟微信支付,用另外一个应用作为需要的模拟的服务器,在公司里,这部分是我们自己的服务器
QFHotModel *model = shopArray[0];;
//微信支付是以分为单位的,钱数不用xiaoshud
NSString *orderStr = [NSString stringWithFormat:@"ServerPayDemo://localhost?ordername=%@&price=%@", model.name, @"1"];
//改变字符串的编码
orderStr = [orderStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
//发起请求,使用openURL调起另外一个应用,如果要实现打电话、发短信、发邮件等功能的话同样调用openURL
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:orderStr]];