// // WXApiManager.m // SDKSample // // Created by Jeason on 15/7/14. // // #import "WXApi.h" #import "WXApiRequestHandler.h" #import "WXApiManager.h" #import "SendMessageToWXReq+requestWithTextOrMediaMessage.h" #import "WXMediaMessage+messageConstruct.h" @implementation WXApiRequestHandler #pragma mark - Public Methods + (void)sendText:(NSString *)text InScene:(enum WXScene)scene { SendMessageToWXReq *req = [SendMessageToWXReq requestWithText:text OrMediaMessage:nil bText:YES InScene:scene]; [WXApi sendReq:req completion:nil]; } + (void)sendImageData:(NSData *)imageData TagName:(NSString *)tagName MessageExt:(NSString *)messageExt Action:(NSString *)action ThumbImage:(UIImage *)thumbImage InScene:(enum WXScene)scene { WXImageObject *ext = [WXImageObject object]; ext.imageData = imageData; WXMediaMessage *message = [WXMediaMessage messageWithTitle:nil Description:nil Object:ext MessageExt:messageExt MessageAction:action ThumbImage:thumbImage MediaTag:tagName]; SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil OrMediaMessage:message bText:NO InScene:scene]; [WXApi sendReq:req completion:nil]; } + (void)sendLinkURL:(NSString *)urlString TagName:(NSString *)tagName Title:(NSString *)title Description:(NSString *)description ThumbImage:(UIImage *)thumbImage InScene:(enum WXScene)scene { WXWebpageObject *ext = [WXWebpageObject object]; ext.webpageUrl = urlString; WXMediaMessage *message = [WXMediaMessage messageWithTitle:title Description:description Object:ext MessageExt:nil MessageAction:nil ThumbImage:thumbImage MediaTag:tagName]; SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil OrMediaMessage:message bText:NO InScene:scene]; [WXApi sendReq:req completion:nil]; } + (void)sendMusicURL:(NSString *)musicURL dataURL:(NSString *)dataURL Title:(NSString *)title Description:(NSString *)description ThumbImage:(UIImage *)thumbImage InScene:(enum WXScene)scene { WXMusicObject *ext = [WXMusicObject object]; ext.musicUrl = musicURL; ext.musicDataUrl = dataURL; WXMediaMessage *message = [WXMediaMessage messageWithTitle:title Description:description Object:ext MessageExt:nil MessageAction:nil ThumbImage:thumbImage MediaTag:nil]; SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil OrMediaMessage:message bText:NO InScene:scene]; [WXApi sendReq:req completion:nil]; } + (void)sendVideoURL:(NSString *)videoURL Title:(NSString *)title Description:(NSString *)description ThumbImage:(UIImage *)thumbImage InScene:(enum WXScene)scene { WXMediaMessage *message = [WXMediaMessage message]; message.title = title; message.description = description; [message setThumbImage:thumbImage]; WXVideoObject *ext = [WXVideoObject object]; ext.videoUrl = videoURL; message.mediaObject = ext; SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil OrMediaMessage:message bText:NO InScene:scene]; [WXApi sendReq:req completion:nil]; } + (void)sendEmotionData:(NSData *)emotionData ThumbImage:(UIImage *)thumbImage InScene:(enum WXScene)scene { WXMediaMessage *message = [WXMediaMessage message]; [message setThumbImage:thumbImage]; WXEmoticonObject *ext = [WXEmoticonObject object]; ext.emoticonData = emotionData; message.mediaObject = ext; SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil OrMediaMessage:message bText:NO InScene:scene]; [WXApi sendReq:req completion:nil]; } + (void)sendFileData:(NSData *)fileData fileExtension:(NSString *)extension Title:(NSString *)title Description:(NSString *)description ThumbImage:(UIImage *)thumbImage InScene:(enum WXScene)scene { WXMediaMessage *message = [WXMediaMessage message]; message.title = title; message.description = description; [message setThumbImage:thumbImage]; WXFileObject *ext = [WXFileObject object]; ext.fileExtension = @"pdf"; ext.fileData = fileData; message.mediaObject = ext; SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil OrMediaMessage:message bText:NO InScene:scene]; [WXApi sendReq:req completion:nil]; } + (void)sendMiniProgramWebpageUrl:(NSString *)webpageUrl userName:(NSString *)userName path:(NSString *)path title:(NSString *)title Description:(NSString *)description ThumbImage:(UIImage *)thumbImage hdImageData:(NSData *)hdImageData withShareTicket:(BOOL)withShareTicket miniProgramType:(WXMiniProgramType)programType InScene:(enum WXScene)scene { WXMiniProgramObject *ext = [WXMiniProgramObject object]; ext.webpageUrl = webpageUrl; ext.userName = userName; ext.path = path; ext.hdImageData = hdImageData; ext.withShareTicket = withShareTicket; ext.miniProgramType = programType; WXMediaMessage *message = [WXMediaMessage messageWithTitle:title Description:description Object:ext MessageExt:nil MessageAction:nil ThumbImage:thumbImage MediaTag:nil]; SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil OrMediaMessage:message bText:NO InScene:scene]; [WXApi sendReq:req completion:nil]; } + (void)launchMiniProgramWithUserName:(NSString *)userName path:(NSString *)path type:(WXMiniProgramType)miniProgramType { WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object]; launchMiniProgramReq.userName = userName; launchMiniProgramReq.path = path; launchMiniProgramReq.miniProgramType = miniProgramType; return [WXApi sendReq:launchMiniProgramReq completion:nil]; } + (void)sendAppContentData:(NSData *)data ExtInfo:(NSString *)info ExtURL:(NSString *)url Title:(NSString *)title Description:(NSString *)description MessageExt:(NSString *)messageExt MessageAction:(NSString *)action ThumbImage:(UIImage *)thumbImage InScene:(enum WXScene)scene { WXAppExtendObject *ext = [WXAppExtendObject object]; ext.extInfo = info; ext.url = url; ext.fileData = data; WXMediaMessage *message = [WXMediaMessage messageWithTitle:title Description:description Object:ext MessageExt:messageExt MessageAction:action ThumbImage:thumbImage MediaTag:nil]; SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil OrMediaMessage:message bText:NO InScene:scene]; [WXApi sendReq:req completion:nil]; } + (void)addCardsToCardPackage:(NSArray *)cardIds cardExts:(NSArray *)cardExts { NSMutableArray *cardItems = [NSMutableArray array]; for (NSString *cardId in cardIds) { WXCardItem *item = [[WXCardItem alloc] init]; item.cardId = cardId; item.appID = @"wxf8b4f85f3a794e77"; [cardItems addObject:item]; } for (NSInteger index = 0; index < cardItems.count; index++) { WXCardItem *item = cardItems[index]; NSString *ext = cardExts[index]; item.extMsg = ext; } AddCardToWXCardPackageReq *req = [[AddCardToWXCardPackageReq alloc] init]; req.cardAry = cardItems; [WXApi sendReq:req completion:nil]; } + (void)chooseCard:(NSString *)appid cardSign:(NSString *)cardSign nonceStr:(NSString *)nonceStr signType:(NSString *)signType timestamp:(UInt32)timestamp { WXChooseCardReq *chooseCardReq = [[WXChooseCardReq alloc] init]; chooseCardReq.appID = appid; chooseCardReq.cardSign = cardSign; chooseCardReq.nonceStr = nonceStr; chooseCardReq.signType = signType; chooseCardReq.timeStamp = timestamp; [WXApi sendReq:chooseCardReq completion:nil]; } + (void)sendAuthRequestScope:(NSString *)scope State:(NSString *)state OpenID:(NSString *)openID InViewController:(UIViewController *)viewController { SendAuthReq* req = [[SendAuthReq alloc] init]; req.scope = scope; // @"post_timeline,sns" req.state = state; req.openID = openID; [WXApi sendAuthReq:req viewController:viewController delegate:[WXApiManager sharedManager] completion:nil]; } + (void)openUrl:(NSString *)url { OpenWebviewReq *req = [[OpenWebviewReq alloc] init]; req.url = url; [WXApi sendReq:req completion:nil]; } + (void)chooseInvoice:(NSString *)appid cardSign:(NSString *)cardSign nonceStr:(NSString *)nonceStr signType:(NSString *)signType timestamp:(UInt32)timestamp { WXChooseInvoiceReq *chooseInvoiceReq = [[WXChooseInvoiceReq alloc] init]; chooseInvoiceReq.appID = appid; chooseInvoiceReq.cardSign = cardSign; chooseInvoiceReq.nonceStr = nonceStr; chooseInvoiceReq.signType = signType; // chooseCardReq.cardType = @"INVOICE"; chooseInvoiceReq.timeStamp = timestamp; // chooseCardReq.canMultiSelect = 1; [WXApi sendReq:chooseInvoiceReq completion:nil]; } @end