WXApiObject.h 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990
  1. //
  2. // MMApiObject.h
  3. // Api对象,包含所有接口和对象数据定义
  4. //
  5. // Created by Wechat on 12-2-28.
  6. // Copyright (c) 2012年 Tencent. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. NS_ASSUME_NONNULL_BEGIN
  11. /*! @brief 错误码
  12. *
  13. */
  14. enum WXErrCode {
  15. WXSuccess = 0, /**< 成功 */
  16. WXErrCodeCommon = -1, /**< 普通错误类型 */
  17. WXErrCodeUserCancel = -2, /**< 用户点击取消并返回 */
  18. WXErrCodeSentFail = -3, /**< 发送失败 */
  19. WXErrCodeAuthDeny = -4, /**< 授权失败 */
  20. WXErrCodeUnsupport = -5, /**< 微信不支持 */
  21. };
  22. /*! @brief 请求发送场景
  23. *
  24. */
  25. enum WXScene {
  26. WXSceneSession = 0, /**< 聊天界面 */
  27. WXSceneTimeline = 1, /**< 朋友圈 */
  28. WXSceneFavorite = 2, /**< 收藏 */
  29. WXSceneSpecifiedSession = 3, /**< 指定联系人 */
  30. };
  31. enum WXAPISupport {
  32. WXAPISupportSession = 0,
  33. };
  34. /*! @brief 跳转profile类型
  35. *
  36. */
  37. enum WXBizProfileType {
  38. WXBizProfileType_Normal = 0, //**< 普通公众号 */
  39. WXBizProfileType_Device = 1, //**< 硬件公众号 */
  40. };
  41. /*! @brief 分享小程序类型
  42. *
  43. */
  44. typedef NS_ENUM(NSUInteger, WXMiniProgramType) {
  45. WXMiniProgramTypeRelease = 0, //**< 正式版 */
  46. WXMiniProgramTypeTest = 1, //**< 开发版 */
  47. WXMiniProgramTypePreview = 2, //**< 体验版 */
  48. };
  49. /*! @brief 跳转mp网页类型
  50. *
  51. */
  52. enum WXMPWebviewType {
  53. WXMPWebviewType_Ad = 0, /**< 广告网页 **/
  54. };
  55. /*! @brief log的级别
  56. *
  57. */
  58. typedef NS_ENUM(NSInteger,WXLogLevel) {
  59. WXLogLevelNormal = 0, // 打印日常的日志
  60. WXLogLevelDetail = 1, // 打印详细的日志
  61. };
  62. /*! @brief 打印回调的block
  63. *
  64. */
  65. typedef void(^WXLogBolock)(NSString *log);
  66. /*! @brief 微信Universal Link检查函数 (WXApi#checkUniversalLinkReady:),检查步骤枚举值
  67. *
  68. * WXULCheckStepParams 参数检测
  69. * WXULCheckStepSystemVersion 当前系统版本检测
  70. * WXULCheckStepWechatVersion 微信客户端版本检测
  71. * WXULCheckStepSDKInnerOperation 微信SDK内部操作检测
  72. * WXULCheckStepLaunchWechat App拉起微信检测
  73. * WXULCheckStepBackToCurrentApp 由微信返回当前App检测
  74. * WXULCheckStepFinal 最终结果
  75. */
  76. typedef NS_ENUM(NSInteger, WXULCheckStep)
  77. {
  78. WXULCheckStepParams,
  79. WXULCheckStepSystemVersion,
  80. WXULCheckStepWechatVersion,
  81. WXULCheckStepSDKInnerOperation,
  82. WXULCheckStepLaunchWechat,
  83. WXULCheckStepBackToCurrentApp,
  84. WXULCheckStepFinal,
  85. };
  86. #pragma mark - WXCheckULStepResult
  87. /*! @brief 该类为微信Universal Link检测函数结果类
  88. *
  89. */
  90. @interface WXCheckULStepResult : NSObject
  91. /** 是否成功 */
  92. @property(nonatomic, assign) BOOL success;
  93. /** 当前错误信息 */
  94. @property(nonatomic, strong) NSString* errorInfo;
  95. /** 修正建议 */
  96. @property(nonatomic, strong) NSString* suggestion;
  97. - (instancetype)initWithCheckResult:(BOOL)success errorInfo:(nullable NSString*)errorInfo suggestion:(nullable NSString*)suggestion;
  98. @end
  99. /*! @brief 微信Universal Link检查函数 (WXApi#checkUniversalLinkReady:),回调Block
  100. *
  101. * @param step 当前检测步骤
  102. * @param result 检测结果
  103. */
  104. typedef void(^WXCheckULCompletion)(WXULCheckStep step, WXCheckULStepResult* result);
  105. #pragma mark - BaseReq
  106. /*! @brief 该类为微信终端SDK所有请求类的基类
  107. *
  108. */
  109. @interface BaseReq : NSObject
  110. /** 请求类型 */
  111. @property (nonatomic, assign) int type;
  112. /** 由用户微信号和AppID组成的唯一标识,需要校验微信用户是否换号登录时填写*/
  113. @property (nonatomic, copy) NSString *openID;
  114. @end
  115. #pragma mark - BaseResp
  116. /*! @brief 该类为微信终端SDK所有响应类的基类
  117. *
  118. */
  119. @interface BaseResp : NSObject
  120. /** 错误码 */
  121. @property (nonatomic, assign) int errCode;
  122. /** 错误提示字符串 */
  123. @property (nonatomic, copy) NSString *errStr;
  124. /** 响应类型 */
  125. @property (nonatomic, assign) int type;
  126. @end
  127. #pragma mark - WXMediaMessage
  128. @class WXMediaMessage;
  129. #pragma mark - SendAuthReq
  130. /*! @brief 第三方程序向微信终端请求认证的消息结构
  131. *
  132. * 第三方程序要向微信申请认证,并请求某些权限,需要调用WXApi的sendReq成员函数,
  133. * 向微信终端发送一个SendAuthReq消息结构。微信终端处理完后会向第三方程序发送一个处理结果。
  134. * @see SendAuthResp
  135. */
  136. @interface SendAuthReq : BaseReq
  137. /** 第三方程序要向微信申请认证,并请求某些权限,需要调用WXApi的sendReq成员函数,向微信终端发送一个SendAuthReq消息结构。微信终端处理完后会向第三方程序发送一个处理结果。
  138. * @see SendAuthResp
  139. * @note scope字符串长度不能超过1K
  140. */
  141. @property (nonatomic, copy) NSString *scope;
  142. /** 第三方程序本身用来标识其请求的唯一性,最后跳转回第三方程序时,由微信终端回传。
  143. * @note state字符串长度不能超过1K
  144. */
  145. @property (nonatomic, copy) NSString *state;
  146. @end
  147. #pragma mark - SendAuthResp
  148. /*! @brief 微信处理完第三方程序的认证和权限申请后向第三方程序回送的处理结果。
  149. *
  150. * 第三方程序要向微信申请认证,并请求某些权限,需要调用WXApi的sendReq成员函数,向微信终端发送一个SendAuthReq消息结构。
  151. * 微信终端处理完后会向第三方程序发送一个SendAuthResp。
  152. * @see onResp
  153. */
  154. @interface SendAuthResp : BaseResp
  155. @property (nonatomic, copy, nullable) NSString *code;
  156. /** 第三方程序发送时用来标识其请求的唯一性的标志,由第三方程序调用sendReq时传入,由微信终端回传
  157. * @note state字符串长度不能超过1K
  158. */
  159. @property (nonatomic, copy, nullable) NSString *state;
  160. @property (nonatomic, copy, nullable) NSString *lang;
  161. @property (nonatomic, copy, nullable) NSString *country;
  162. @end
  163. #pragma mark - SendMessageToWXReq
  164. /*! @brief 第三方程序发送消息至微信终端程序的消息结构体
  165. *
  166. * 第三方程序向微信发送信息需要传入SendMessageToWXReq结构体,信息类型包括文本消息和多媒体消息,
  167. * 分别对应于text和message成员。调用该方法后,微信处理完信息会向第三方程序发送一个处理结果。
  168. * @see SendMessageToWXResp
  169. */
  170. @interface SendMessageToWXReq : BaseReq
  171. /** 发送消息的文本内容
  172. * @note 文本长度必须大于0且小于10K
  173. */
  174. @property (nonatomic, copy) NSString *text;
  175. /** 发送消息的多媒体内容
  176. * @see WXMediaMessage
  177. */
  178. @property (nonatomic, strong) WXMediaMessage *message;
  179. /** 发送消息的类型,包括文本消息和多媒体消息两种,两者只能选择其一,不能同时发送文本和多媒体消息 */
  180. @property (nonatomic, assign) BOOL bText;
  181. /** 发送的目标场景,可以选择发送到会话(WXSceneSession)或者朋友圈(WXSceneTimeline)。 默认发送到会话。
  182. * @see WXScene
  183. */
  184. @property (nonatomic, assign) int scene;
  185. /** 指定发送消息的人
  186. * @note WXSceneSpecifiedSession时有效
  187. */
  188. @property (nonatomic, copy, nullable) NSString *toUserOpenId;
  189. @end
  190. #pragma mark - SendMessageToWXResp
  191. /*! @brief 微信终端向第三方程序返回的SendMessageToWXReq处理结果。
  192. *
  193. * 第三方程序向微信终端发送SendMessageToWXReq后,微信发送回来的处理结果,该结果用SendMessageToWXResp表示。
  194. */
  195. @interface SendMessageToWXResp : BaseResp
  196. @property(nonatomic, copy) NSString *lang;
  197. @property(nonatomic, copy) NSString *country;
  198. @end
  199. #pragma mark - GetMessageFromWXReq
  200. /*! @brief 微信终端向第三方程序请求提供内容的消息结构体。
  201. *
  202. * 微信终端向第三方程序请求提供内容,微信终端会向第三方程序发送GetMessageFromWXReq消息结构体,
  203. * 需要第三方程序调用sendResp返回一个GetMessageFromWXResp消息结构体。
  204. */
  205. @interface GetMessageFromWXReq : BaseReq
  206. @property (nonatomic, strong) NSString *lang;
  207. @property (nonatomic, strong) NSString *country;
  208. @end
  209. #pragma mark - GetMessageFromWXResp
  210. /*! @brief 微信终端向第三方程序请求提供内容,第三方程序向微信终端返回的消息结构体。
  211. *
  212. * 微信终端向第三方程序请求提供内容,第三方程序调用sendResp向微信终端返回一个GetMessageFromWXResp消息结构体。
  213. */
  214. @interface GetMessageFromWXResp : BaseResp
  215. /** 向微信终端提供的文本内容
  216. @note 文本长度必须大于0且小于10K
  217. */
  218. @property (nonatomic, strong) NSString *text;
  219. /** 向微信终端提供的多媒体内容。
  220. * @see WXMediaMessage
  221. */
  222. @property (nonatomic, strong) WXMediaMessage *message;
  223. /** 向微信终端提供内容的消息类型,包括文本消息和多媒体消息两种,两者只能选择其一,不能同时发送文本和多媒体消息 */
  224. @property (nonatomic, assign) BOOL bText;
  225. @end
  226. #pragma mark - ShowMessageFromWXReq
  227. /*! @brief 微信通知第三方程序,要求第三方程序显示的消息结构体。
  228. *
  229. * 微信需要通知第三方程序显示或处理某些内容时,会向第三方程序发送ShowMessageFromWXReq消息结构体。
  230. * 第三方程序处理完内容后调用sendResp向微信终端发送ShowMessageFromWXResp。
  231. */
  232. @interface ShowMessageFromWXReq : BaseReq
  233. /** 微信终端向第三方程序发送的要求第三方程序处理的多媒体内容
  234. * @see WXMediaMessage
  235. */
  236. @property (nonatomic, strong) WXMediaMessage *message;
  237. @property (nonatomic, copy) NSString *lang;
  238. @property (nonatomic, copy) NSString *country;
  239. @end
  240. #pragma mark - ShowMessageFromWXResp
  241. /*! @brief 微信通知第三方程序,要求第三方程序显示或处理某些消息,第三方程序处理完后向微信终端发送的处理结果。
  242. *
  243. * 微信需要通知第三方程序显示或处理某些内容时,会向第三方程序发送ShowMessageFromWXReq消息结构体。
  244. * 第三方程序处理完内容后调用sendResp向微信终端发送ShowMessageFromWXResp。
  245. */
  246. @interface ShowMessageFromWXResp : BaseResp
  247. @end
  248. #pragma mark - LaunchFromWXReq
  249. /*! @brief 微信终端打开第三方程序携带的消息结构体
  250. *
  251. * 微信向第三方发送的结构体,第三方不需要返回
  252. */
  253. @interface LaunchFromWXReq : BaseReq
  254. @property (nonatomic, strong) WXMediaMessage *message;
  255. @property (nonatomic, copy) NSString *lang;
  256. @property (nonatomic, copy) NSString *country;
  257. @end
  258. #pragma mark - OpenWebviewReq
  259. /* ! @brief 第三方通知微信启动内部浏览器,打开指定网页
  260. *
  261. * 第三方通知微信启动内部浏览器,打开指定Url对应的网页
  262. */
  263. @interface OpenWebviewReq : BaseReq
  264. /** 需要打开的网页对应的Url
  265. * @attention 长度不能超过1024
  266. */
  267. @property(nonatomic, copy) NSString *url;
  268. @end
  269. #pragma mark - OpenWebviewResp
  270. /*! @brief 微信终端向第三方程序返回的OpenWebviewReq处理结果
  271. *
  272. * 第三方程序向微信终端发送OpenWebviewReq后,微信发送回来的处理结果,该结果用OpenWebviewResp表示
  273. */
  274. @interface OpenWebviewResp : BaseResp
  275. @end
  276. #pragma mark - WXOpenBusinessWebViewReq
  277. /*! @brief 第三方通知微信启动内部浏览器,打开指定业务的网页
  278. *
  279. *
  280. */
  281. @interface WXOpenBusinessWebViewReq : BaseReq
  282. /** 网页业务类型
  283. * @attention
  284. */
  285. @property (nonatomic, assign) UInt32 businessType;
  286. /** 网页业务参数
  287. * @attention
  288. */
  289. @property (nonatomic, strong, nullable) NSDictionary *queryInfoDic;
  290. @end
  291. #pragma mark - WXOpenBusinessWebViewResp
  292. /*! @brief 微信终端向第三方程序返回的WXOpenBusinessWebViewResp处理结果。
  293. *
  294. * 第三方程序向微信终端发送WXOpenBusinessWebViewReq后,微信发送回来的处理结果,该结果用WXOpenBusinessWebViewResp表示。
  295. */
  296. @interface WXOpenBusinessWebViewResp : BaseResp
  297. /** 第三方程序自定义简单数据,微信终端会回传给第三方程序处理
  298. * @attention 长度不能超过2k
  299. */
  300. @property (nonatomic, copy) NSString *result;
  301. /** 网页业务类型
  302. * @attention
  303. */
  304. @property (nonatomic, assign) UInt32 businessType;
  305. @end
  306. #pragma mark - OpenRankListReq
  307. /* ! @brief 第三方通知微信,打开硬件排行榜
  308. *
  309. * 第三方通知微信,打开硬件排行榜
  310. */
  311. @interface OpenRankListReq : BaseReq
  312. @end
  313. #pragma mark - OpenRanklistResp
  314. /*! @brief 微信终端向第三方程序返回的OpenRankListReq处理结果。
  315. *
  316. * 第三方程序向微信终端发送OpenRankListReq后,微信发送回来的处理结果,该结果用OpenRankListResp表示。
  317. */
  318. @interface OpenRankListResp : BaseResp
  319. @end
  320. #pragma mark - WXCardItem
  321. @interface WXCardItem : NSObject
  322. /** 卡id
  323. * @attention 长度不能超过1024字节
  324. */
  325. @property (nonatomic, copy) NSString *cardId;
  326. /** ext信息
  327. * @attention 长度不能超过2024字节
  328. */
  329. @property (nonatomic, copy, nullable) NSString *extMsg;
  330. /**
  331. * @attention 卡的状态,req不需要填。resp:0为未添加,1为已添加。
  332. */
  333. @property (nonatomic, assign) UInt32 cardState;
  334. /**
  335. * @attention req不需要填,chooseCard返回的。
  336. */
  337. @property (nonatomic, copy) NSString *encryptCode;
  338. /**
  339. * @attention req不需要填,chooseCard返回的。
  340. */
  341. @property (nonatomic, copy) NSString *appID;
  342. @end;
  343. #pragma mark - WXInvoiceItem
  344. @interface WXInvoiceItem : NSObject
  345. /** 卡id
  346. * @attention 长度不能超过1024字节
  347. */
  348. @property (nonatomic, copy) NSString *cardId;
  349. /** ext信息
  350. * @attention 长度不能超过2024字节
  351. */
  352. @property (nonatomic, copy, nullable) NSString *extMsg;
  353. /**
  354. * @attention 卡的状态,req不需要填。resp:0为未添加,1为已添加。
  355. */
  356. @property (nonatomic, assign) UInt32 cardState;
  357. /**
  358. * @attention req不需要填,chooseCard返回的。
  359. */
  360. @property (nonatomic, copy) NSString *encryptCode;
  361. /**
  362. * @attention req不需要填,chooseCard返回的。
  363. */
  364. @property (nonatomic, copy) NSString *appID;
  365. @end
  366. #pragma mark - AddCardToWXCardPackageReq
  367. /* ! @brief 请求添加卡券至微信卡包
  368. *
  369. */
  370. @interface AddCardToWXCardPackageReq : BaseReq
  371. /** 卡列表
  372. * @attention 个数不能超过40个 类型WXCardItem
  373. */
  374. @property (nonatomic, strong) NSArray *cardAry;
  375. @end
  376. #pragma mark - AddCardToWXCardPackageResp
  377. /** ! @brief 微信返回第三方添加卡券结果
  378. *
  379. */
  380. @interface AddCardToWXCardPackageResp : BaseResp
  381. /** 卡列表
  382. * @attention 个数不能超过40个 类型WXCardItem
  383. */
  384. @property (nonatomic, strong) NSArray *cardAry;
  385. @end
  386. #pragma mark - WXChooseCardReq
  387. /* ! @brief 请求从微信选取卡券
  388. *
  389. */
  390. @interface WXChooseCardReq : BaseReq
  391. @property (nonatomic, copy) NSString *appID;
  392. @property (nonatomic, assign) UInt32 shopID;
  393. @property (nonatomic, assign) UInt32 canMultiSelect;
  394. @property (nonatomic, copy) NSString *cardType;
  395. @property (nonatomic, copy) NSString *cardTpID;
  396. @property (nonatomic, copy) NSString *signType;
  397. @property (nonatomic, copy) NSString *cardSign;
  398. @property (nonatomic, assign) UInt32 timeStamp;
  399. @property (nonatomic, copy) NSString *nonceStr;
  400. @end
  401. #pragma mark - WXChooseCardResp
  402. /** ! @brief 微信返回第三方请求选择卡券结果
  403. *
  404. */
  405. @interface WXChooseCardResp : BaseResp
  406. @property (nonatomic, strong ) NSArray* cardAry;
  407. @end
  408. #pragma mark - WXChooseInvoiceReq
  409. /* ! @brief 请求从微信选取发票
  410. *
  411. */
  412. @interface WXChooseInvoiceReq : BaseReq
  413. @property (nonatomic, copy) NSString *appID;
  414. @property (nonatomic, assign) UInt32 shopID;
  415. @property (nonatomic, copy) NSString *signType;
  416. @property (nonatomic, copy) NSString *cardSign;
  417. @property (nonatomic, assign) UInt32 timeStamp;
  418. @property (nonatomic, copy) NSString *nonceStr;
  419. @end
  420. #pragma mark - WXChooseInvoiceResp
  421. /** ! @brief 微信返回第三方请求选择发票结果
  422. *
  423. */
  424. @interface WXChooseInvoiceResp : BaseResp
  425. @property (nonatomic, strong) NSArray* cardAry;
  426. @end
  427. #pragma mark - WXSubscriptionReq
  428. @interface WXSubscribeMsgReq : BaseReq
  429. @property (nonatomic, assign) UInt32 scene;
  430. @property (nonatomic, copy) NSString *templateId;
  431. @property (nonatomic, copy, nullable) NSString *reserved;
  432. @end
  433. #pragma mark - WXSubscriptionReq
  434. @interface WXSubscribeMsgResp : BaseResp
  435. @property (nonatomic, copy) NSString *templateId;
  436. @property (nonatomic, assign) UInt32 scene;
  437. @property (nonatomic, copy) NSString *action;
  438. @property (nonatomic, copy) NSString *reserved;
  439. @property (nonatomic, copy, nullable) NSString *openId;
  440. @end
  441. #pragma mark - WXSubscribeMiniProgramMsg
  442. /** ! @brief 第三方请求订阅小程序消息
  443. *
  444. */
  445. @interface WXSubscribeMiniProgramMsgReq : BaseReq
  446. @property (nonatomic, copy) NSString *miniProgramAppid;
  447. @end
  448. #pragma mark - WXSubscriptionReq
  449. @interface WXSubscribeMiniProgramMsgResp : BaseResp
  450. @property(nonatomic, copy) NSString *openId; // 小程序openid
  451. @property(nonatomic, copy) NSString *unionId; // unionId
  452. @property(nonatomic, copy) NSString *nickName; // 用户昵称
  453. @end
  454. #pragma mark - WXinvoiceAuthInsertReq
  455. @interface WXInvoiceAuthInsertReq : BaseReq
  456. @property (nonatomic, copy) NSString *urlString;
  457. @end
  458. #pragma mark - WXinvoiceAuthInsertResp
  459. @interface WXInvoiceAuthInsertResp : BaseResp
  460. @property (nonatomic, copy) NSString *wxOrderId;
  461. @end
  462. #pragma mark - WXMediaMessage
  463. /*! @brief 多媒体消息结构体
  464. *
  465. * 用于微信终端和第三方程序之间传递消息的多媒体消息内容
  466. */
  467. @interface WXMediaMessage : NSObject
  468. + (WXMediaMessage *)message;
  469. /** 标题
  470. * @note 长度不能超过512字节
  471. */
  472. @property (nonatomic, copy) NSString *title;
  473. /** 描述内容
  474. * @note 长度不能超过1K
  475. */
  476. @property (nonatomic, copy) NSString *description;
  477. /** 缩略图数据
  478. * @note 大小不能超过64K
  479. */
  480. @property (nonatomic, strong, nullable) NSData *thumbData;
  481. /**
  482. * @note 长度不能超过64字节
  483. */
  484. @property (nonatomic, copy, nullable) NSString *mediaTagName;
  485. /**
  486. *
  487. */
  488. @property (nonatomic, copy, nullable) NSString *messageExt;
  489. @property (nonatomic, copy, nullable) NSString *messageAction;
  490. /**
  491. * 多媒体数据对象,可以为WXImageObject,WXMusicObject,WXVideoObject,WXWebpageObject等。
  492. */
  493. @property (nonatomic, strong) id mediaObject;
  494. /*! @brief 设置消息缩略图的方法
  495. *
  496. * @param image 缩略图
  497. * @note 大小不能超过64K
  498. */
  499. - (void)setThumbImage:(UIImage *)image;
  500. @end
  501. #pragma mark - WXImageObject
  502. /*! @brief 多媒体消息中包含的图片数据对象
  503. *
  504. * 微信终端和第三方程序之间传递消息中包含的图片数据对象。
  505. * @note imageData成员不能为空
  506. * @see WXMediaMessage
  507. */
  508. @interface WXImageObject : NSObject
  509. /*! @brief 返回一个WXImageObject对象
  510. *
  511. * @note 返回的WXImageObject对象是自动释放的
  512. */
  513. + (WXImageObject *)object;
  514. /** 图片真实数据内容
  515. * @note 大小不能超过25M
  516. */
  517. @property (nonatomic, strong) NSData *imageData;
  518. @end
  519. #pragma mark - WXMusicObject
  520. /*! @brief 多媒体消息中包含的音乐数据对象
  521. *
  522. * 微信终端和第三方程序之间传递消息中包含的音乐数据对象。
  523. * @note musicUrl和musicLowBandUrl成员不能同时为空。
  524. * @see WXMediaMessage
  525. */
  526. @interface WXMusicObject : NSObject
  527. /*! @brief 返回一个WXMusicObject对象
  528. *
  529. * @note 返回的WXMusicObject对象是自动释放的
  530. */
  531. + (WXMusicObject *)object;
  532. /** 音乐网页的url地址
  533. * @note 长度不能超过10K
  534. */
  535. @property (nonatomic, copy) NSString *musicUrl;
  536. /** 音乐lowband网页的url地址
  537. * @note 长度不能超过10K
  538. */
  539. @property (nonatomic, copy) NSString *musicLowBandUrl;
  540. /** 音乐数据url地址
  541. * @note 长度不能超过10K
  542. */
  543. @property (nonatomic, copy) NSString *musicDataUrl;
  544. /**音乐lowband数据url地址
  545. * @note 长度不能超过10K
  546. */
  547. @property (nonatomic, copy) NSString *musicLowBandDataUrl;
  548. /**音乐封面图Url
  549. * @note 长度不能超过10K
  550. */
  551. @property (nonatomic, copy) NSString *songAlbumUrl;
  552. /**歌词信息 LRC格式
  553. * @note 长度不能超过32K
  554. */
  555. @property (nonatomic, copy, nullable) NSString *songLyric;
  556. @end
  557. #pragma mark - WXVideoObject
  558. /*! @brief 多媒体消息中包含的视频数据对象
  559. *
  560. * 微信终端和第三方程序之间传递消息中包含的视频数据对象。
  561. * @note videoUrl和videoLowBandUrl不能同时为空。
  562. * @see WXMediaMessage
  563. */
  564. @interface WXVideoObject : NSObject
  565. /*! @brief 返回一个WXVideoObject对象
  566. *
  567. * @note 返回的WXVideoObject对象是自动释放的
  568. */
  569. + (WXVideoObject *)object;
  570. /** 视频网页的url地址
  571. * @note 长度不能超过10K
  572. */
  573. @property (nonatomic, copy) NSString *videoUrl;
  574. /** 视频lowband网页的url地址
  575. * @note 长度不能超过10K
  576. */
  577. @property (nonatomic, copy) NSString *videoLowBandUrl;
  578. @end
  579. #pragma mark - WXWebpageObject
  580. /*! @brief 多媒体消息中包含的网页数据对象
  581. *
  582. * 微信终端和第三方程序之间传递消息中包含的网页数据对象。
  583. * @see WXMediaMessage
  584. */
  585. @interface WXWebpageObject : NSObject
  586. /*! @brief 返回一个WXWebpageObject对象
  587. *
  588. * @note 返回的WXWebpageObject对象是自动释放的
  589. */
  590. + (WXWebpageObject *)object;
  591. /** 网页的url地址
  592. * @note 不能为空且长度不能超过10K
  593. */
  594. @property (nonatomic, copy) NSString *webpageUrl;
  595. @end
  596. #pragma mark - WXAppExtendObject
  597. /*! @brief 多媒体消息中包含的App扩展数据对象
  598. *
  599. * 第三方程序向微信终端发送包含WXAppExtendObject的多媒体消息,
  600. * 微信需要处理该消息时,会调用该第三方程序来处理多媒体消息内容。
  601. * @note url,extInfo和fileData不能同时为空
  602. * @see WXMediaMessage
  603. */
  604. @interface WXAppExtendObject : NSObject
  605. /*! @brief 返回一个WXAppExtendObject对象
  606. *
  607. * @note 返回的WXAppExtendObject对象是自动释放的
  608. */
  609. + (WXAppExtendObject *)object;
  610. /** 若第三方程序不存在,微信终端会打开该url所指的App下载地址
  611. * @note 长度不能超过10K
  612. */
  613. @property (nonatomic, copy) NSString *url;
  614. /** 第三方程序自定义简单数据,微信终端会回传给第三方程序处理
  615. * @note 长度不能超过2K
  616. */
  617. @property (nonatomic, copy, nullable) NSString *extInfo;
  618. /** App文件数据,该数据发送给微信好友,微信好友需要点击后下载数据,微信终端会回传给第三方程序处理
  619. * @note 大小不能超过10M
  620. */
  621. @property (nonatomic, strong, nullable) NSData *fileData;
  622. @end
  623. #pragma mark - WXEmoticonObject
  624. /*! @brief 多媒体消息中包含的表情数据对象
  625. *
  626. * 微信终端和第三方程序之间传递消息中包含的表情数据对象。
  627. * @see WXMediaMessage
  628. */
  629. @interface WXEmoticonObject : NSObject
  630. /*! @brief 返回一个WXEmoticonObject对象
  631. *
  632. * @note 返回的WXEmoticonObject对象是自动释放的
  633. */
  634. + (WXEmoticonObject *)object;
  635. /** 表情真实数据内容
  636. * @note 大小不能超过10M
  637. */
  638. @property (nonatomic, strong) NSData *emoticonData;
  639. @end
  640. #pragma mark - WXFileObject
  641. /*! @brief 多媒体消息中包含的文件数据对象
  642. *
  643. * @see WXMediaMessage
  644. */
  645. @interface WXFileObject : NSObject
  646. /*! @brief 返回一个WXFileObject对象
  647. *
  648. * @note 返回的WXFileObject对象是自动释放的
  649. */
  650. + (WXFileObject *)object;
  651. /** 文件后缀名
  652. * @note 长度不超过64字节
  653. */
  654. @property (nonatomic, copy) NSString *fileExtension;
  655. /** 文件真实数据内容
  656. * @note 大小不能超过10M
  657. */
  658. @property (nonatomic, strong) NSData *fileData;
  659. @end
  660. #pragma mark - WXLocationObject
  661. /*! @brief 多媒体消息中包含的地理位置数据对象
  662. *
  663. * 微信终端和第三方程序之间传递消息中包含的地理位置数据对象。
  664. * @see WXMediaMessage
  665. */
  666. @interface WXLocationObject : NSObject
  667. /*! @brief 返回一个WXLocationObject对象
  668. *
  669. * @note 返回的WXLocationObject对象是自动释放的
  670. */
  671. + (WXLocationObject *)object;
  672. /** 地理位置信息
  673. * @note 经纬度
  674. */
  675. @property (nonatomic, assign) double lng; //经度
  676. @property (nonatomic, assign) double lat; //纬度
  677. @end
  678. #pragma mark - WXTextObject
  679. /*! @brief 多媒体消息中包含的文本数据对象
  680. *
  681. * 微信终端和第三方程序之间传递消息中包含的文本数据对象。
  682. * @see WXMediaMessage
  683. */
  684. @interface WXTextObject : NSObject
  685. /*! @brief 返回一个WXTextObject对象
  686. *
  687. * @note 返回的WXTextObject对象是自动释放的
  688. */
  689. + (WXTextObject *)object;
  690. /** 地理位置信息
  691. * @note 文本内容
  692. */
  693. @property (nonatomic, copy) NSString *contentText;
  694. @end
  695. #pragma mark - WXMiniProgramObject
  696. @interface WXMiniProgramObject : NSObject
  697. /*! @brief WXMiniProgramObject对象
  698. *
  699. * @note 返回的WXMiniProgramObject对象是自动释放的
  700. */
  701. + (WXMiniProgramObject *)object;
  702. /** 低版本网页链接
  703. * @attention 长度不能超过1024字节
  704. */
  705. @property (nonatomic, copy) NSString *webpageUrl;
  706. /** 小程序username */
  707. @property (nonatomic, copy) NSString *userName;
  708. /** 小程序页面的路径
  709. * @attention 不填默认拉起小程序首页
  710. */
  711. @property (nonatomic, copy, nullable) NSString *path;
  712. /** 小程序新版本的预览图
  713. * @attention 大小不能超过128k
  714. */
  715. @property (nonatomic, strong, nullable) NSData *hdImageData;
  716. /** 是否使用带 shareTicket 的转发 */
  717. @property (nonatomic, assign) BOOL withShareTicket;
  718. /** 分享小程序的版本
  719. * @attention (正式,开发,体验)
  720. */
  721. @property (nonatomic, assign) WXMiniProgramType miniProgramType;
  722. /** 是否禁用转发 */
  723. @property (nonatomic, assign) BOOL disableForward;
  724. @end
  725. #pragma mark - WXLaunchMiniProgramReq
  726. /*! @brief WXLaunchMiniProgramReq对象, 可实现通过sdk拉起微信小程序
  727. *
  728. * @note 返回的WXLaunchMiniProgramReq对象是自动释放的
  729. */
  730. @interface WXLaunchMiniProgramReq : BaseReq
  731. + (WXLaunchMiniProgramReq *)object;
  732. /** 小程序username */
  733. @property (nonatomic, copy) NSString *userName;
  734. /** 小程序页面的路径
  735. * @attention 不填默认拉起小程序首页
  736. */
  737. @property (nonatomic, copy, nullable) NSString *path;
  738. /** 分享小程序的版本
  739. * @attention (正式,开发,体验)
  740. */
  741. @property (nonatomic, assign) WXMiniProgramType miniProgramType;
  742. /** ext信息
  743. * @attention json格式
  744. */
  745. @property (nonatomic, copy, nullable) NSString *extMsg;
  746. /** extDic
  747. * @attention 字典,可存放图片等比较大的数据
  748. */
  749. @property (nonatomic, copy, nullable) NSDictionary *extDic;
  750. @end
  751. #pragma mark - WXLaunchMiniProgramResp
  752. /*! @brief 微信终端向第三方程序返回的WXLaunchMiniProgramReq处理结果。
  753. *
  754. * 第三方程序向微信终端发送WXLaunchMiniProgramReq后,微信发送回来的处理结果,该结果用WXLaunchMiniProgramResp表示。
  755. */
  756. @interface WXLaunchMiniProgramResp : BaseResp
  757. @property (nonatomic, copy, nullable) NSString *extMsg;
  758. @end
  759. #pragma mark - WXOpenBusinessViewReq
  760. /*! @brief WXOpenBusinessViewReq对象, 可实现第三方通知微信启动,打开业务页面
  761. *
  762. * @note 返回的WXOpenBusinessViewReq对象是自动释放的
  763. */
  764. @interface WXOpenBusinessViewReq : BaseReq
  765. + (WXOpenBusinessViewReq *)object;
  766. /** 业务类型
  767. */
  768. @property (nonatomic, copy) NSString *businessType;
  769. /** 业务参数
  770. */
  771. @property (nonatomic, copy, nullable) NSString *query;
  772. /** ext信息
  773. * @note 选填,json格式
  774. */
  775. @property (nonatomic, copy, nullable) NSString *extInfo;
  776. /** extData数据
  777. * @note
  778. */
  779. @property (nonatomic, strong, nullable) NSData *extData;
  780. @end
  781. @interface WXOpenBusinessViewResp : BaseResp
  782. /** 业务类型
  783. */
  784. @property (nonatomic, copy) NSString *businessType;
  785. /** 业务返回数据
  786. */
  787. @property (nonatomic, copy, nullable) NSString *extMsg;
  788. @end
  789. NS_ASSUME_NONNULL_END