美文网首页
iOS接入微信集成支付

iOS接入微信集成支付

作者: Lee坚武 | 来源:发表于2020-08-06 11:37 被阅读0次

1.微信后台文档创建AppKey
创建单例类WechatManager

#import <Foundation/Foundation.h>
#import "WXApi.h"

@interface WechatManager : NSObject

+ (id)shareInstance;

+ (BOOL)handleOpenUrl:(NSURL *)url;

+ (void)hangleWechatPayWith:(PayReq *)req;

@end
#import "WechatManager.h"

@interface WechatManager()<WXApiDelegate>

@end

@implementation WechatManager

+ (id)shareInstance {
    static WechatManager *weChatPayInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        weChatPayInstance = [[WechatManager alloc] init];
    });
    return weChatPayInstance;
}

+ (BOOL)handleOpenUrl:(NSURL *)url {
    return [WXApi handleOpenURL:url delegate:[WechatManager shareInstance]];
}

+ (void)hangleWechatPayWith:(PayReq *)req {
    [WXApi sendReq:req completion:^(BOOL success) {
        if (success) {
            NSLog(@"微信支付成功");
        } else {
             NSLog(@"微信支付异常");
        }
    }];
}

#pragma mark - 微信支付回调

- (void)onResp:(BaseResp *)resp {
    if ([resp isKindOfClass:[PayResp class]]) {
        /*
         enum  WXErrCode {
         WXSuccess           = 0,    < 成功
         WXErrCodeCommon     = -1,  < 普通错误类型
         WXErrCodeUserCancel = -2,   < 用户点击取消并返回
         WXErrCodeSentFail   = -3,   < 发送失败
         WXErrCodeAuthDeny   = -4,   < 授权失败
         WXErrCodeUnsupport  = -5,   < 微信不支持
         };
         */
        PayResp *response = (PayResp*)resp;
        switch (response.errCode) {
            case WXSuccess: {
                NSLog(@"微信回调支付成功");
//                [[NSNotificationCenter defaultCenter] postNotificationName:UserNotificationAlipayOrWechatSuccess
//                                                                    object:nil
//                                                                  userInfo:nil];
            break;
            }
            case WXErrCodeCommon: {
                NSLog(@"微信回调支付异常");
                break;
            }
            case WXErrCodeUserCancel: {
                NSLog(@"微信回调用户取消支付");
                break;
            }
            case WXErrCodeSentFail: {
                NSLog(@"微信回调发送支付信息失败");
                break;
            }
            case WXErrCodeAuthDeny: {
                NSLog(@"微信回调授权失败");
                break;
            }
            case WXErrCodeUnsupport: {
                NSLog(@"微信回调微信版本暂不支持");
                break;
            }
            default: {
                break;
            }
        }
    }
}
@end
if ([_getPayID isEqualToString:@"21"]) {
            NSString * orderString = responseObject[@"data"];
            [[AlipaySDK defaultService] payOrder:orderString fromScheme:@"ADSDK" callback:^(NSDictionary *resultDic) {
                NSLog(@"reslut ======= %@",resultDic);
            }];
        }
        if ([_getPayID isEqualToString:@"20"]) {
            //调起微信支付
            PayReq *req   = [[PayReq alloc] init];
            req.nonceStr  = [responseObject[@"data"] objectForKey:@"noncestr"];
            req.timeStamp = [[responseObject[@"data"] objectForKey:@"timestamp"] intValue];
            req.package   = [responseObject[@"data"] objectForKey:@"package"];
            req.partnerId = [responseObject[@"data"] objectForKey:@"partnerid"];
            req.prepayId  = [responseObject[@"data"] objectForKey:@"prepayid"];
            req.sign      = [responseObject[@"data"] objectForKey:@"sign"];
            [WechatManager hangleWechatPayWith:req];
        }

相关文章

网友评论

      本文标题:iOS接入微信集成支付

      本文链接:https://www.haomeiwen.com/subject/uuldrktx.html