WXApiRequestHandler.mm 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. //
  2. // WXApiManager.m
  3. // SDKSample
  4. //
  5. // Created by Jeason on 15/7/14.
  6. //
  7. //
  8. #import "WXApi.h"
  9. #import "WXApiRequestHandler.h"
  10. #import "WXApiManager.h"
  11. #import "SendMessageToWXReq+requestWithTextOrMediaMessage.h"
  12. #import "WXMediaMessage+messageConstruct.h"
  13. @implementation WXApiRequestHandler
  14. #pragma mark - Public Methods
  15. + (void)sendText:(NSString *)text
  16. InScene:(enum WXScene)scene {
  17. SendMessageToWXReq *req = [SendMessageToWXReq requestWithText:text
  18. OrMediaMessage:nil
  19. bText:YES
  20. InScene:scene];
  21. [WXApi sendReq:req completion:nil];
  22. }
  23. + (void)sendImageData:(NSData *)imageData
  24. TagName:(NSString *)tagName
  25. MessageExt:(NSString *)messageExt
  26. Action:(NSString *)action
  27. ThumbImage:(UIImage *)thumbImage
  28. InScene:(enum WXScene)scene {
  29. WXImageObject *ext = [WXImageObject object];
  30. ext.imageData = imageData;
  31. WXMediaMessage *message = [WXMediaMessage messageWithTitle:nil
  32. Description:nil
  33. Object:ext
  34. MessageExt:messageExt
  35. MessageAction:action
  36. ThumbImage:thumbImage
  37. MediaTag:tagName];
  38. SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
  39. OrMediaMessage:message
  40. bText:NO
  41. InScene:scene];
  42. [WXApi sendReq:req completion:nil];
  43. }
  44. + (void)sendLinkURL:(NSString *)urlString
  45. TagName:(NSString *)tagName
  46. Title:(NSString *)title
  47. Description:(NSString *)description
  48. ThumbImage:(UIImage *)thumbImage
  49. InScene:(enum WXScene)scene {
  50. WXWebpageObject *ext = [WXWebpageObject object];
  51. ext.webpageUrl = urlString;
  52. WXMediaMessage *message = [WXMediaMessage messageWithTitle:title
  53. Description:description
  54. Object:ext
  55. MessageExt:nil
  56. MessageAction:nil
  57. ThumbImage:thumbImage
  58. MediaTag:tagName];
  59. SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
  60. OrMediaMessage:message
  61. bText:NO
  62. InScene:scene];
  63. [WXApi sendReq:req completion:nil];
  64. }
  65. + (void)sendMusicURL:(NSString *)musicURL
  66. dataURL:(NSString *)dataURL
  67. Title:(NSString *)title
  68. Description:(NSString *)description
  69. ThumbImage:(UIImage *)thumbImage
  70. InScene:(enum WXScene)scene {
  71. WXMusicObject *ext = [WXMusicObject object];
  72. ext.musicUrl = musicURL;
  73. ext.musicDataUrl = dataURL;
  74. WXMediaMessage *message = [WXMediaMessage messageWithTitle:title
  75. Description:description
  76. Object:ext
  77. MessageExt:nil
  78. MessageAction:nil
  79. ThumbImage:thumbImage
  80. MediaTag:nil];
  81. SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
  82. OrMediaMessage:message
  83. bText:NO
  84. InScene:scene];
  85. [WXApi sendReq:req completion:nil];
  86. }
  87. + (void)sendVideoURL:(NSString *)videoURL
  88. Title:(NSString *)title
  89. Description:(NSString *)description
  90. ThumbImage:(UIImage *)thumbImage
  91. InScene:(enum WXScene)scene {
  92. WXMediaMessage *message = [WXMediaMessage message];
  93. message.title = title;
  94. message.description = description;
  95. [message setThumbImage:thumbImage];
  96. WXVideoObject *ext = [WXVideoObject object];
  97. ext.videoUrl = videoURL;
  98. message.mediaObject = ext;
  99. SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
  100. OrMediaMessage:message
  101. bText:NO
  102. InScene:scene];
  103. [WXApi sendReq:req completion:nil];
  104. }
  105. + (void)sendEmotionData:(NSData *)emotionData
  106. ThumbImage:(UIImage *)thumbImage
  107. InScene:(enum WXScene)scene {
  108. WXMediaMessage *message = [WXMediaMessage message];
  109. [message setThumbImage:thumbImage];
  110. WXEmoticonObject *ext = [WXEmoticonObject object];
  111. ext.emoticonData = emotionData;
  112. message.mediaObject = ext;
  113. SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
  114. OrMediaMessage:message
  115. bText:NO
  116. InScene:scene];
  117. [WXApi sendReq:req completion:nil];
  118. }
  119. + (void)sendFileData:(NSData *)fileData
  120. fileExtension:(NSString *)extension
  121. Title:(NSString *)title
  122. Description:(NSString *)description
  123. ThumbImage:(UIImage *)thumbImage
  124. InScene:(enum WXScene)scene {
  125. WXMediaMessage *message = [WXMediaMessage message];
  126. message.title = title;
  127. message.description = description;
  128. [message setThumbImage:thumbImage];
  129. WXFileObject *ext = [WXFileObject object];
  130. ext.fileExtension = @"pdf";
  131. ext.fileData = fileData;
  132. message.mediaObject = ext;
  133. SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
  134. OrMediaMessage:message
  135. bText:NO
  136. InScene:scene];
  137. [WXApi sendReq:req completion:nil];
  138. }
  139. + (void)sendMiniProgramWebpageUrl:(NSString *)webpageUrl
  140. userName:(NSString *)userName
  141. path:(NSString *)path
  142. title:(NSString *)title
  143. Description:(NSString *)description
  144. ThumbImage:(UIImage *)thumbImage
  145. hdImageData:(NSData *)hdImageData
  146. withShareTicket:(BOOL)withShareTicket
  147. miniProgramType:(WXMiniProgramType)programType
  148. InScene:(enum WXScene)scene
  149. {
  150. WXMiniProgramObject *ext = [WXMiniProgramObject object];
  151. ext.webpageUrl = webpageUrl;
  152. ext.userName = userName;
  153. ext.path = path;
  154. ext.hdImageData = hdImageData;
  155. ext.withShareTicket = withShareTicket;
  156. ext.miniProgramType = programType;
  157. WXMediaMessage *message = [WXMediaMessage messageWithTitle:title
  158. Description:description
  159. Object:ext
  160. MessageExt:nil
  161. MessageAction:nil
  162. ThumbImage:thumbImage
  163. MediaTag:nil];
  164. SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
  165. OrMediaMessage:message
  166. bText:NO
  167. InScene:scene];
  168. [WXApi sendReq:req completion:nil];
  169. }
  170. + (void)launchMiniProgramWithUserName:(NSString *)userName
  171. path:(NSString *)path
  172. type:(WXMiniProgramType)miniProgramType
  173. {
  174. WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
  175. launchMiniProgramReq.userName = userName;
  176. launchMiniProgramReq.path = path;
  177. launchMiniProgramReq.miniProgramType = miniProgramType;
  178. return [WXApi sendReq:launchMiniProgramReq completion:nil];
  179. }
  180. + (void)sendAppContentData:(NSData *)data
  181. ExtInfo:(NSString *)info
  182. ExtURL:(NSString *)url
  183. Title:(NSString *)title
  184. Description:(NSString *)description
  185. MessageExt:(NSString *)messageExt
  186. MessageAction:(NSString *)action
  187. ThumbImage:(UIImage *)thumbImage
  188. InScene:(enum WXScene)scene {
  189. WXAppExtendObject *ext = [WXAppExtendObject object];
  190. ext.extInfo = info;
  191. ext.url = url;
  192. ext.fileData = data;
  193. WXMediaMessage *message = [WXMediaMessage messageWithTitle:title
  194. Description:description
  195. Object:ext
  196. MessageExt:messageExt
  197. MessageAction:action
  198. ThumbImage:thumbImage
  199. MediaTag:nil];
  200. SendMessageToWXReq* req = [SendMessageToWXReq requestWithText:nil
  201. OrMediaMessage:message
  202. bText:NO
  203. InScene:scene];
  204. [WXApi sendReq:req completion:nil];
  205. }
  206. + (void)addCardsToCardPackage:(NSArray *)cardIds cardExts:(NSArray *)cardExts
  207. {
  208. NSMutableArray *cardItems = [NSMutableArray array];
  209. for (NSString *cardId in cardIds) {
  210. WXCardItem *item = [[WXCardItem alloc] init];
  211. item.cardId = cardId;
  212. item.appID = @"wxf8b4f85f3a794e77";
  213. [cardItems addObject:item];
  214. }
  215. for (NSInteger index = 0; index < cardItems.count; index++) {
  216. WXCardItem *item = cardItems[index];
  217. NSString *ext = cardExts[index];
  218. item.extMsg = ext;
  219. }
  220. AddCardToWXCardPackageReq *req = [[AddCardToWXCardPackageReq alloc] init];
  221. req.cardAry = cardItems;
  222. [WXApi sendReq:req completion:nil];
  223. }
  224. + (void)chooseCard:(NSString *)appid
  225. cardSign:(NSString *)cardSign
  226. nonceStr:(NSString *)nonceStr
  227. signType:(NSString *)signType
  228. timestamp:(UInt32)timestamp
  229. {
  230. WXChooseCardReq *chooseCardReq = [[WXChooseCardReq alloc] init];
  231. chooseCardReq.appID = appid;
  232. chooseCardReq.cardSign = cardSign;
  233. chooseCardReq.nonceStr = nonceStr;
  234. chooseCardReq.signType = signType;
  235. chooseCardReq.timeStamp = timestamp;
  236. [WXApi sendReq:chooseCardReq completion:nil];
  237. }
  238. + (void)sendAuthRequestScope:(NSString *)scope
  239. State:(NSString *)state
  240. OpenID:(NSString *)openID
  241. InViewController:(UIViewController *)viewController
  242. {
  243. SendAuthReq* req = [[SendAuthReq alloc] init];
  244. req.scope = scope; // @"post_timeline,sns"
  245. req.state = state;
  246. req.openID = openID;
  247. [WXApi sendAuthReq:req
  248. viewController:viewController
  249. delegate:[WXApiManager sharedManager]
  250. completion:nil];
  251. }
  252. + (void)openUrl:(NSString *)url
  253. {
  254. OpenWebviewReq *req = [[OpenWebviewReq alloc] init];
  255. req.url = url;
  256. [WXApi sendReq:req completion:nil];
  257. }
  258. + (void)chooseInvoice:(NSString *)appid
  259. cardSign:(NSString *)cardSign
  260. nonceStr:(NSString *)nonceStr
  261. signType:(NSString *)signType
  262. timestamp:(UInt32)timestamp
  263. {
  264. WXChooseInvoiceReq *chooseInvoiceReq = [[WXChooseInvoiceReq alloc] init];
  265. chooseInvoiceReq.appID = appid;
  266. chooseInvoiceReq.cardSign = cardSign;
  267. chooseInvoiceReq.nonceStr = nonceStr;
  268. chooseInvoiceReq.signType = signType;
  269. // chooseCardReq.cardType = @"INVOICE";
  270. chooseInvoiceReq.timeStamp = timestamp;
  271. // chooseCardReq.canMultiSelect = 1;
  272. [WXApi sendReq:chooseInvoiceReq completion:nil];
  273. }
  274. @end