1.从微信官方下载SDK:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1
2.导入SDK
3.导入系统库
- SystemConfiguration.framework
- libz.tbd
- libsqlite3.0.tbd
- CoreTelephony.framework
- libc++.tbd4.自定义一个类
.h文件
#import <Foundation/Foundation.h> #import "WXApi.h" @protocol WXApiManagerDelegate <NSObject> @optional - (void)managerDidRecvGetMessageReq:(GetMessageFromWXReq *)request; - (void)managerDidRecvShowMessageReq:(ShowMessageFromWXReq *)request; - (void)managerDidRecvLaunchFromWXReq:(LaunchFromWXReq *)request; - (void)managerDidRecvMessageResponse:(SendMessageToWXResp *)response; - (void)managerDidRecvAuthResponse:(SendAuthResp *)response; - (void)managerDidRecvAddCardResponse:(AddCardToWXCardPackageResp *)response; @end @interface WXApiManager : NSObject<WXApiDelegate> @property (nonatomic, assign) id<WXApiManagerDelegate> delegate; + (instancetype)sharedManager; @end
.m文件#import "WXApiManager.h" @implementation WXApiManager #pragma mark - LifeCycle +(instancetype)sharedManager { static dispatch_once_t onceToken; static WXApiManager *instance; dispatch_once(&onceToken, ^{ instance = [[WXApiManager alloc] init]; }); return instance; } - (void)dealloc { self.delegate = nil; } #pragma mark - WXApiDelegate - (void)onResp:(BaseResp *)resp { if ([resp isKindOfClass:[SendMessageToWXResp class]]) { if (_delegate && [_delegate respondsToSelector:@selector(managerDidRecvMessageResponse:)]) { SendMessageToWXResp *messageResp = (SendMessageToWXResp *)resp; [_delegate managerDidRecvMessageResponse:messageResp]; } } else if ([resp isKindOfClass:[SendAuthResp class]]) { if (_delegate && [_delegate respondsToSelector:@selector(managerDidRecvAuthResponse:)]) { SendAuthResp *authResp = (SendAuthResp *)resp; [_delegate managerDidRecvAuthResponse:authResp]; } } else if ([resp isKindOfClass:[AddCardToWXCardPackageResp class]]) { if (_delegate && [_delegate respondsToSelector:@selector(managerDidRecvAddCardResponse:)]) { AddCardToWXCardPackageResp *addCardResp = (AddCardToWXCardPackageResp *)resp; [_delegate managerDidRecvAddCardResponse:addCardResp]; } }else if([resp isKindOfClass:[PayResp class]]){ //支付返回结果,实际支付结果需要去微信服务器端查询 NSString *strMsg,*strTitle = [NSString stringWithFormat:@"支付结果"]; switch (resp.errCode) { case WXSuccess: strMsg = @"支付结果:成功!"; NSLog(@"支付成功-PaySuccess,retcode = %d", resp.errCode); break; default: strMsg = [NSString stringWithFormat:@"支付结果:失败!retcode = %d, retstr = %@", resp.errCode,resp.errStr]; NSLog(@"错误,retcode = %d, retstr = %@", resp.errCode,resp.errStr); break; } UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; } } - (void)onReq:(BaseReq *)req { if ([req isKindOfClass:[GetMessageFromWXReq class]]) { if (_delegate && [_delegate respondsToSelector:@selector(managerDidRecvGetMessageReq:)]) { GetMessageFromWXReq *getMessageReq = (GetMessageFromWXReq *)req; [_delegate managerDidRecvGetMessageReq:getMessageReq]; } } else if ([req isKindOfClass:[ShowMessageFromWXReq class]]) { if (_delegate && [_delegate respondsToSelector:@selector(managerDidRecvShowMessageReq:)]) { ShowMessageFromWXReq *showMessageReq = (ShowMessageFromWXReq *)req; [_delegate managerDidRecvShowMessageReq:showMessageReq]; } } else if ([req isKindOfClass:[LaunchFromWXReq class]]) { if (_delegate && [_delegate respondsToSelector:@selector(managerDidRecvLaunchFromWXReq:)]) { LaunchFromWXReq *launchReq = (LaunchFromWXReq *)req; [_delegate managerDidRecvLaunchFromWXReq:launchReq]; } } } @end
- SystemConfiguration.framework
- libz.tbd
- libsqlite3.0.tbd
- CoreTelephony.framework
- libc++.tbd