Sin descripción

WXApiObject.h 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  1. //
  2. // MMApiObject.h
  3. // ApiClient
  4. //
  5. // Created by Tencent on 12-2-28.
  6. // Copyright (c) 2012年 Tencent. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. /////////////////////////////////////////////////////////////
  10. enum WXErrCode {
  11. WXSuccess = 0,
  12. WXErrCodeCommon = -1,
  13. WXErrCodeUserCancel = -2,
  14. WXErrCodeSentFail = -3,
  15. WXErrCodeAuthDeny = -4,
  16. WXErrCodeUnsupport = -5,
  17. };
  18. enum WXScene {
  19. WXSceneSession = 0,
  20. WXSceneTimeline = 1,
  21. WXSceneFavorite = 2,
  22. };
  23. enum WXAPISupport {
  24. WXAPISupportSession = 0,
  25. };
  26. /*! @brief 该类为微信终端SDK所有请求类的基类
  27. *
  28. */
  29. @interface BaseReq : NSObject
  30. /** 请求类型 */
  31. @property (nonatomic, assign) int type;
  32. /** 由用户微信号和AppID组成的唯一标识,发送请求时第三方程序必须填写,用于校验微信用户是否换号登录*/
  33. @property (nonatomic, retain) NSString* openID;
  34. @end
  35. /*! @brief 该类为微信终端SDK所有响应类的基类
  36. *
  37. */
  38. @interface BaseResp : NSObject
  39. /** 错误码 */
  40. @property (nonatomic, assign) int errCode;
  41. /** 错误提示字符串 */
  42. @property (nonatomic, retain) NSString *errStr;
  43. /** 响应类型 */
  44. @property (nonatomic, assign) int type;
  45. @end
  46. @class WXMediaMessage;
  47. /*! @brief 第三方向微信终端发起支付的消息结构体
  48. *
  49. * 第三方向微信终端发起支付的消息结构体,微信终端处理后会向第三方返回处理结果
  50. * @see PayResp
  51. */
  52. @interface PayReq : BaseReq
  53. /** 商家向财付通申请的商家id */
  54. @property (nonatomic, retain) NSString *partnerId;
  55. /** 预支付订单 */
  56. @property (nonatomic, retain) NSString *prepayId;
  57. /** 随机串,防重发 */
  58. @property (nonatomic, retain) NSString *nonceStr;
  59. /** 时间戳,防重发 */
  60. @property (nonatomic, assign) UInt32 timeStamp;
  61. /** 商家根据财付通文档填写的数据和签名 */
  62. @property (nonatomic, retain) NSString *package;
  63. /** 商家根据微信开放平台文档对数据做的签名 */
  64. @property (nonatomic, retain) NSString *sign;
  65. @end
  66. /*! @brief 微信终端返回给第三方的关于支付结果的结构体
  67. *
  68. * 微信终端返回给第三方的关于支付结果的结构体
  69. */
  70. @interface PayResp : BaseResp
  71. /** 财付通返回给商家的信息 */
  72. @property (nonatomic, retain) NSString *returnKey;
  73. @end
  74. /*! @brief 第三方程序向微信终端请求认证的消息结构
  75. *
  76. * 第三方程序要向微信申请认证,并请求某些权限,需要调用WXApi的sendReq成员函数,
  77. * 向微信终端发送一个SendAuthReq消息结构。微信终端处理完后会向第三方程序发送一个处理结果。
  78. * @see SendAuthResp
  79. */
  80. @interface SendAuthReq : BaseReq
  81. /** 第三方程序要向微信申请认证,并请求某些权限,需要调用WXApi的sendReq成员函数,向微信终端发送一个SendAuthReq消息结构。微信终端处理完后会向第三方程序发送一个处理结果。
  82. * @see SendAuthResp
  83. * @note scope字符串长度不能超过1K
  84. */
  85. @property (nonatomic, retain) NSString* scope;
  86. /** 第三方程序本身用来标识其请求的唯一性,最后跳转回第三方程序时,由微信终端回传。
  87. * @note state字符串长度不能超过1K
  88. */
  89. @property (nonatomic, retain) NSString* state;
  90. @end
  91. /*! @brief 微信处理完第三方程序的认证和权限申请后向第三方程序回送的处理结果。
  92. *
  93. * 第三方程序要向微信申请认证,并请求某些权限,需要调用WXApi的sendReq成员函数,向微信终端发送一个SendAuthReq消息结构。
  94. * 微信终端处理完后会向第三方程序发送一个SendAuthResp。
  95. * @see onResp
  96. */
  97. @interface SendAuthResp : BaseResp
  98. /** todo */
  99. @property (nonatomic, retain) NSString* code;
  100. /** 第三方程序发送时用来标识其请求的唯一性的标志,由第三方程序调用sendReq时传入,由微信终端回传
  101. * @note state字符串长度不能超过1K
  102. */
  103. @property (nonatomic, retain) NSString* state;
  104. @property (nonatomic, retain) NSString* lang;
  105. @property (nonatomic, retain) NSString* country;
  106. // @property (nonatomic, retain) NSString* userName;
  107. // @property (nonatomic, retain) NSString* token;
  108. // @property (nonatomic, retain) NSDate* expireDate;
  109. @end
  110. /*! @brief 第三方程序发送消息至微信终端程序的消息结构体
  111. *
  112. * 第三方程序向微信发送信息需要传入SendMessageToWXReq结构体,信息类型包括文本消息和多媒体消息,
  113. * 分别对应于text和message成员。调用该方法后,微信处理完信息会向第三方程序发送一个处理结果。
  114. * @see SendMessageToWXResp
  115. */
  116. @interface SendMessageToWXReq : BaseReq
  117. /** 发送消息的文本内容
  118. * @note 文本长度必须大于0且小于10K
  119. */
  120. @property (nonatomic, retain) NSString* text;
  121. /** 发送消息的多媒体内容
  122. * @see WXMediaMessage
  123. */
  124. @property (nonatomic, retain) WXMediaMessage* message;
  125. /** 发送消息的类型,包括文本消息和多媒体消息两种,两者只能选择其一,不能同时发送文本和多媒体消息 */
  126. @property (nonatomic, assign) BOOL bText;
  127. /** 发送的目标场景,可以选择发送到会话(WXSceneSession)或者朋友圈(WXSceneTimeline)。 默认发送到会话。
  128. * @see WXScene
  129. */
  130. @property (nonatomic, assign) int scene;
  131. @end
  132. /*! @brief 微信终端向第三方程序返回的SendMessageToWXReq处理结果。
  133. *
  134. * 第三方程序向微信终端发送SendMessageToWXReq后,微信发送回来的处理结果,该结果用SendMessageToWXResp表示。
  135. */
  136. @interface SendMessageToWXResp : BaseResp
  137. @property(nonatomic, retain) NSString* lang;
  138. @property(nonatomic, retain) NSString* country;
  139. @end
  140. /*! @brief 微信终端向第三方程序请求提供内容的消息结构体。
  141. *
  142. * 微信终端向第三方程序请求提供内容,微信终端会向第三方程序发送GetMessageFromWXReq消息结构体,
  143. * 需要第三方程序调用sendResp返回一个GetMessageFromWXResp消息结构体。
  144. */
  145. @interface GetMessageFromWXReq : BaseReq
  146. @property (nonatomic, retain) NSString* lang;
  147. @property (nonatomic, retain) NSString* country;
  148. @end
  149. /*! @brief 微信终端向第三方程序请求提供内容,第三方程序向微信终端返回的消息结构体。
  150. *
  151. * 微信终端向第三方程序请求提供内容,第三方程序调用sendResp向微信终端返回一个GetMessageFromWXResp消息结构体。
  152. */
  153. @interface GetMessageFromWXResp : BaseResp
  154. /** 向微信终端提供的文本内容
  155. @note 文本长度必须大于0且小于10K
  156. */
  157. @property (nonatomic, retain) NSString* text;
  158. /** 向微信终端提供的多媒体内容。
  159. * @see WXMediaMessage
  160. */
  161. @property (nonatomic, retain) WXMediaMessage* message;
  162. /** 向微信终端提供内容的消息类型,包括文本消息和多媒体消息两种,两者只能选择其一,不能同时发送文本和多媒体消息 */
  163. @property (nonatomic, assign) BOOL bText;
  164. @end
  165. /*! @brief 微信通知第三方程序,要求第三方程序显示的消息结构体。
  166. *
  167. * 微信需要通知第三方程序显示或处理某些内容时,会向第三方程序发送ShowMessageFromWXReq消息结构体。
  168. * 第三方程序处理完内容后调用sendResp向微信终端发送ShowMessageFromWXResp。
  169. */
  170. @interface ShowMessageFromWXReq : BaseReq
  171. /** 微信终端向第三方程序发送的要求第三方程序处理的多媒体内容
  172. * @see WXMediaMessage
  173. */
  174. @property (nonatomic, retain) WXMediaMessage* message;
  175. @property (nonatomic, retain) NSString* lang;
  176. @property (nonatomic, retain) NSString* country;
  177. @end
  178. /*! @brief 微信通知第三方程序,要求第三方程序显示或处理某些消息,第三方程序处理完后向微信终端发送的处理结果。
  179. *
  180. * 微信需要通知第三方程序显示或处理某些内容时,会向第三方程序发送ShowMessageFromWXReq消息结构体。
  181. * 第三方程序处理完内容后调用sendResp向微信终端发送ShowMessageFromWXResp。
  182. */
  183. @interface ShowMessageFromWXResp : BaseResp
  184. @end
  185. /*! @brief 微信终端打开第三方程序携带的消息结构体
  186. *
  187. * 微信向第三方发送的结构体,第三方不需要返回
  188. */
  189. @interface LaunchFromWXReq : BaseReq
  190. @property (nonatomic, retain) WXMediaMessage* message;
  191. @property (nonatomic, retain) NSString* lang;
  192. @property (nonatomic, retain) NSString* country;
  193. @end
  194. #pragma mark - WXMediaMessage
  195. /*! @brief 多媒体消息结构体
  196. *
  197. * 用于微信终端和第三方程序之间传递消息的多媒体消息内容
  198. */
  199. @interface WXMediaMessage : NSObject
  200. +(WXMediaMessage *) message;
  201. /** 标题
  202. * @note 长度不能超过512字节
  203. */
  204. @property (nonatomic, retain) NSString *title;
  205. /** 描述内容
  206. * @note 长度不能超过1K
  207. */
  208. @property (nonatomic, retain) NSString *description;
  209. /** 缩略图数据
  210. * @note 大小不能超过32K
  211. */
  212. @property (nonatomic, retain) NSData *thumbData;
  213. /** todo
  214. * @note 长度不能超过64字节
  215. */
  216. @property (nonatomic, retain) NSString *mediaTagName;
  217. /**
  218. *
  219. */
  220. @property (nonatomic, retain) NSString *messageExt;
  221. @property (nonatomic, retain) NSString *messageAction;
  222. /** 多媒体数据对象,可以为WXImageObject,WXMusicObject,WXVideoObject,WXWebpageObject等。 */
  223. @property (nonatomic, retain) id mediaObject;
  224. /*! @brief 设置消息缩略图的方法
  225. *
  226. * @param image 缩略图
  227. * @note 大小不能超过32K
  228. */
  229. - (void) setThumbImage:(UIImage *)image;
  230. @end
  231. #pragma mark -
  232. /*! @brief 多媒体消息中包含的图片数据对象
  233. *
  234. * 微信终端和第三方程序之间传递消息中包含的图片数据对象。
  235. * @note imageData和imageUrl成员不能同时为空
  236. * @see WXMediaMessage
  237. */
  238. @interface WXImageObject : NSObject
  239. /*! @brief 返回一个WXImageObject对象
  240. *
  241. * @note 返回的WXImageObject对象是自动释放的
  242. */
  243. +(WXImageObject *) object;
  244. /** 图片真实数据内容
  245. * @note 大小不能超过10M
  246. */
  247. @property (nonatomic, retain) NSData *imageData;
  248. /** 图片url
  249. * @note 长度不能超过10K
  250. */
  251. @property (nonatomic, retain) NSString *imageUrl;
  252. @end
  253. /*! @brief 多媒体消息中包含的音乐数据对象
  254. *
  255. * 微信终端和第三方程序之间传递消息中包含的音乐数据对象。
  256. * @note musicUrl和musicLowBandUrl成员不能同时为空。
  257. * @see WXMediaMessage
  258. */
  259. @interface WXMusicObject : NSObject
  260. /*! @brief 返回一个WXMusicObject对象
  261. *
  262. * @note 返回的WXMusicObject对象是自动释放的
  263. */
  264. +(WXMusicObject *) object;
  265. /** 音乐网页的url地址
  266. * @note 长度不能超过10K
  267. */
  268. @property (nonatomic, retain) NSString *musicUrl;
  269. /** 音乐lowband网页的url地址
  270. * @note 长度不能超过10K
  271. */
  272. @property (nonatomic, retain) NSString *musicLowBandUrl;
  273. /** 音乐数据url地址
  274. * @note 长度不能超过10K
  275. */
  276. @property (nonatomic, retain) NSString *musicDataUrl;
  277. /**音乐lowband数据url地址
  278. * @note 长度不能超过10K
  279. */
  280. @property (nonatomic, retain) NSString *musicLowBandDataUrl;
  281. @end
  282. /*! @brief 多媒体消息中包含的视频数据对象
  283. *
  284. * 微信终端和第三方程序之间传递消息中包含的视频数据对象。
  285. * @note videoUrl和videoLowBandUrl不能同时为空。
  286. * @see WXMediaMessage
  287. */
  288. @interface WXVideoObject : NSObject
  289. /*! @brief 返回一个WXVideoObject对象
  290. *
  291. * @note 返回的WXVideoObject对象是自动释放的
  292. */
  293. +(WXVideoObject *) object;
  294. /** 视频网页的url地址
  295. * @note 长度不能超过10K
  296. */
  297. @property (nonatomic, retain) NSString *videoUrl;
  298. /** 视频lowband网页的url地址
  299. * @note 长度不能超过10K
  300. */
  301. @property (nonatomic, retain) NSString *videoLowBandUrl;
  302. @end
  303. /*! @brief 多媒体消息中包含的网页数据对象
  304. *
  305. * 微信终端和第三方程序之间传递消息中包含的网页数据对象。
  306. * @see WXMediaMessage
  307. */
  308. @interface WXWebpageObject : NSObject
  309. /*! @brief 返回一个WXWebpageObject对象
  310. *
  311. * @note 返回的WXWebpageObject对象是自动释放的
  312. */
  313. +(WXWebpageObject *) object;
  314. /** 网页的url地址
  315. * @note 不能为空且长度不能超过10K
  316. */
  317. @property (nonatomic, retain) NSString *webpageUrl;
  318. @end
  319. /*! @brief 多媒体消息中包含的App扩展数据对象
  320. *
  321. * 第三方程序向微信终端发送包含WXAppExtendObject的多媒体消息,
  322. * 微信需要处理该消息时,会调用该第三方程序来处理多媒体消息内容。
  323. * @note url,extInfo和fileData不能同时为空
  324. * @see WXMediaMessage
  325. */
  326. @interface WXAppExtendObject : NSObject
  327. /*! @brief 返回一个WXAppExtendObject对象
  328. *
  329. * @note 返回的WXAppExtendObject对象是自动释放的
  330. */
  331. +(WXAppExtendObject *) object;
  332. /** 若第三方程序不存在,微信终端会打开该url所指的App下载地址
  333. * @note 长度不能超过10K
  334. */
  335. @property (nonatomic, retain) NSString *url;
  336. /** 第三方程序自定义简单数据,微信终端会回传给第三方程序处理
  337. * @note 长度不能超过2K
  338. */
  339. @property (nonatomic, retain) NSString *extInfo;
  340. /** App文件数据,该数据发送给微信好友,微信好友需要点击后下载数据,微信终端会回传给第三方程序处理
  341. * @note 大小不能超过10M
  342. */
  343. @property (nonatomic, retain) NSData *fileData;
  344. @end
  345. /*! @brief 多媒体消息中包含的表情数据对象
  346. *
  347. * 微信终端和第三方程序之间传递消息中包含的表情数据对象。
  348. * @see WXMediaMessage
  349. */
  350. @interface WXEmoticonObject : NSObject
  351. /*! @brief 返回一个WXEmoticonObject对象
  352. *
  353. * @note 返回的WXEmoticonObject对象是自动释放的
  354. */
  355. +(WXEmoticonObject *) object;
  356. /** 表情真实数据内容
  357. * @note 大小不能超过10M
  358. */
  359. @property (nonatomic, retain) NSData *emoticonData;
  360. @end
  361. /*! @brief todo
  362. *
  363. * @see WXMediaMessage
  364. */
  365. @interface WXFileObject : NSObject
  366. /*! @brief 返回一个WXFileObject对象
  367. *
  368. * @note 返回的WXFileObject对象是自动释放的
  369. */
  370. +(WXFileObject *) object;
  371. /** 文件后缀名
  372. * @note 长度不超过64字节
  373. */
  374. @property (nonatomic, retain) NSString *fileExtension;
  375. /** 文件真实数据内容
  376. * @note 大小不能超过10M
  377. */
  378. @property (nonatomic, retain) NSData *fileData;
  379. @end