WXApiObject.h 35 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306
  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. WXSceneState = 4, /**< 状态 */
  31. };
  32. enum WXAPISupport {
  33. WXAPISupportSession = 0,
  34. };
  35. /*! @brief 跳转profile类型
  36. *
  37. */
  38. enum WXBizProfileType {
  39. WXBizProfileType_Normal = 0, //**< 普通公众号 */
  40. WXBizProfileType_Device = 1, //**< 硬件公众号 */
  41. };
  42. /*! @brief 分享小程序类型
  43. *
  44. */
  45. typedef NS_ENUM(NSUInteger, WXMiniProgramType) {
  46. WXMiniProgramTypeRelease = 0, //**< 正式版 */
  47. WXMiniProgramTypeTest = 1, //**< 开发版 */
  48. WXMiniProgramTypePreview = 2, //**< 体验版 */
  49. };
  50. /*! @brief 跳转mp网页类型
  51. *
  52. */
  53. enum WXMPWebviewType {
  54. WXMPWebviewType_Ad = 0, /**< 广告网页 **/
  55. };
  56. /*! @brief log的级别
  57. *
  58. */
  59. typedef NS_ENUM(NSInteger,WXLogLevel) {
  60. WXLogLevelNormal = 0, // 打印日常的日志
  61. WXLogLevelDetail = 1, // 打印详细的日志
  62. };
  63. /*! @brief 打印回调的block
  64. *
  65. */
  66. typedef void(^WXLogBolock)(NSString *log);
  67. /*! @brief 微信Universal Link检查函数 (WXApi#checkUniversalLinkReady:),检查步骤枚举值
  68. *
  69. * WXULCheckStepParams 参数检测
  70. * WXULCheckStepSystemVersion 当前系统版本检测
  71. * WXULCheckStepWechatVersion 微信客户端版本检测
  72. * WXULCheckStepSDKInnerOperation 微信SDK内部操作检测
  73. * WXULCheckStepLaunchWechat App拉起微信检测
  74. * WXULCheckStepBackToCurrentApp 由微信返回当前App检测
  75. * WXULCheckStepFinal 最终结果
  76. */
  77. typedef NS_ENUM(NSInteger, WXULCheckStep)
  78. {
  79. WXULCheckStepParams,
  80. WXULCheckStepSystemVersion,
  81. WXULCheckStepWechatVersion,
  82. WXULCheckStepSDKInnerOperation,
  83. WXULCheckStepLaunchWechat,
  84. WXULCheckStepBackToCurrentApp,
  85. WXULCheckStepFinal,
  86. };
  87. #pragma mark - WXCheckULStepResult
  88. /*! @brief 该类为微信Universal Link检测函数结果类
  89. *
  90. */
  91. @interface WXCheckULStepResult : NSObject
  92. /** 是否成功 */
  93. @property(nonatomic, assign) BOOL success;
  94. /** 当前错误信息 */
  95. @property(nonatomic, strong) NSString* errorInfo;
  96. /** 修正建议 */
  97. @property(nonatomic, strong) NSString* suggestion;
  98. - (instancetype)initWithCheckResult:(BOOL)success errorInfo:(nullable NSString*)errorInfo suggestion:(nullable NSString*)suggestion;
  99. @end
  100. /*! @brief 微信Universal Link检查函数 (WXApi#checkUniversalLinkReady:),回调Block
  101. *
  102. * @param step 当前检测步骤
  103. * @param result 检测结果
  104. */
  105. typedef void(^WXCheckULCompletion)(WXULCheckStep step, WXCheckULStepResult* result);
  106. #pragma mark - BaseReq
  107. /*! @brief 该类为微信终端SDK所有请求类的基类
  108. *
  109. */
  110. @interface BaseReq : NSObject
  111. /** 请求类型 */
  112. @property (nonatomic, assign) int type;
  113. /** 由用户微信号和AppID组成的唯一标识,需要校验微信用户是否换号登录时填写*/
  114. @property (nonatomic, copy) NSString *openID;
  115. @end
  116. #pragma mark - BaseResp
  117. /*! @brief 该类为微信终端SDK所有响应类的基类
  118. *
  119. */
  120. @interface BaseResp : NSObject
  121. /** 错误码 */
  122. @property (nonatomic, assign) int errCode;
  123. /** 错误提示字符串 */
  124. @property (nonatomic, copy) NSString *errStr;
  125. /** 响应类型 */
  126. @property (nonatomic, assign) int type;
  127. @end
  128. #pragma mark - WXMediaMessage
  129. @class WXMediaMessage;
  130. #pragma mark - SendAuthReq
  131. /*! @brief 第三方程序向微信终端请求认证的消息结构
  132. *
  133. * 第三方程序要向微信申请认证,并请求某些权限,需要调用WXApi的sendReq成员函数,
  134. * 向微信终端发送一个SendAuthReq消息结构。微信终端处理完后会向第三方程序发送一个处理结果。
  135. * @see SendAuthResp
  136. */
  137. @interface SendAuthReq : BaseReq
  138. /** 第三方程序要向微信申请认证,并请求某些权限,需要调用WXApi的sendReq成员函数,向微信终端发送一个SendAuthReq消息结构。微信终端处理完后会向第三方程序发送一个处理结果。
  139. * @see SendAuthResp
  140. * @note scope字符串长度不能超过1K
  141. */
  142. @property (nonatomic, copy) NSString *scope;
  143. /** 第三方程序本身用来标识其请求的唯一性,最后跳转回第三方程序时,由微信终端回传。
  144. * @note state字符串长度不能超过1K
  145. */
  146. @property (nonatomic, copy) NSString *state;
  147. @property (nonatomic, assign) BOOL isOption1;
  148. /** 是否关闭自动授权
  149. * @note YES为关闭自动授权,每次登陆都需要用户手动授权;NO为允许自动授权
  150. */
  151. @property (nonatomic, assign) BOOL nonautomatic;
  152. @property (nonatomic, copy) NSString *extData;
  153. @end
  154. #pragma mark - SendAuthResp
  155. /*! @brief 微信处理完第三方程序的认证和权限申请后向第三方程序回送的处理结果。
  156. *
  157. * 第三方程序要向微信申请认证,并请求某些权限,需要调用WXApi的sendReq成员函数,向微信终端发送一个SendAuthReq消息结构。
  158. * 微信终端处理完后会向第三方程序发送一个SendAuthResp。
  159. * @see onResp
  160. */
  161. @interface SendAuthResp : BaseResp
  162. @property (nonatomic, copy, nullable) NSString *code;
  163. /** 第三方程序发送时用来标识其请求的唯一性的标志,由第三方程序调用sendReq时传入,由微信终端回传
  164. * @note state字符串长度不能超过1K
  165. * @note 在复杂度较高的应用程序中,可能会出现其他模块请求的响应对象被错误地回调到当前模块。
  166. * 为了避免影响其他模块,建议当前模块的开发者根据SendAuthResp的内容,采用白名单的方式进行处理。
  167. * 例如,SendAuthResp.state符合预期时,才对其进行处理。
  168. */
  169. @property (nonatomic, copy, nullable) NSString *state;
  170. @property (nonatomic, copy, nullable) NSString *lang;
  171. @property (nonatomic, copy, nullable) NSString *country;
  172. @end
  173. #pragma mark - WXStateJumpInfo
  174. /*! @brief 状态发表时的小尾巴跳转信息
  175. */
  176. @interface WXStateJumpInfo : NSObject
  177. @end
  178. #pragma mark - WXStateJumpUrlInfo
  179. /*! @brief 状态小尾巴跳转指定url的信息
  180. */
  181. @interface WXStateJumpUrlInfo : WXStateJumpInfo
  182. /** 跳转到指定的url
  183. * @note 必填,url长度必须大于0且小于10K
  184. */
  185. @property (nonatomic, copy) NSString *url;
  186. @end
  187. #pragma mark - WXStateJumpWXMiniProgramInfo
  188. /*! @brief 状态小尾巴跳转指定小程序的信息
  189. */
  190. @interface WXStateJumpMiniProgramInfo : WXStateJumpInfo
  191. /** 小程序username
  192. * @note 必填
  193. */
  194. @property (nonatomic, copy) NSString *username;
  195. /** 小程序页面的路径
  196. * @attention 不填默认拉起小程序首页
  197. */
  198. @property (nonatomic, copy, nullable) NSString *path;
  199. /** 分享小程序的版本
  200. * @attention (正式,开发,体验)
  201. */
  202. @property (nonatomic, assign) WXMiniProgramType miniProgramType;
  203. @end
  204. #pragma mark - WXStateJumpWXMiniProgramInfo
  205. /*! @brief 状态小尾巴跳转指定视频号主页信息
  206. */
  207. @interface WXStateJumpChannelProfileInfo : WXStateJumpInfo
  208. /** 视频号username
  209. * @note 必填,username长度必须大于0且小于1K
  210. */
  211. @property (nonatomic, copy) NSString *username;
  212. @end
  213. #pragma mark - WXStateSceneDataObject
  214. /*! @brief 场景类型额外参数基类
  215. */
  216. @interface WXSceneDataObject : NSObject
  217. @end
  218. #pragma mark - WXStateSceneDataObject
  219. /*! @brief 状态场景类型
  220. * 用户填写WXStateSceneDataObject参数后,可以跳转到微信状态发表页
  221. */
  222. @interface WXStateSceneDataObject : WXSceneDataObject
  223. /** 状态标志的ID
  224. * @note 选填,文本长度必须小于10K
  225. */
  226. @property (nonatomic, copy) NSString *stateId;
  227. /** 状态发表时附带的文本描述
  228. * @note 选填,文本长度必须小于10K
  229. */
  230. @property (nonatomic, copy) NSString *stateTitle;
  231. /** 后台校验token
  232. * @note 选填,文本长度必须小于10K
  233. */
  234. @property (nonatomic, copy) NSString *token;
  235. /** 小尾巴跳转所需的信息
  236. * @note 必填,目前仅支持url跳转
  237. */
  238. @property (nonatomic, strong) WXStateJumpInfo *stateJumpDataInfo;
  239. @end
  240. #pragma mark - SendMessageToWXReq
  241. /*! @brief 第三方程序发送消息至微信终端程序的消息结构体
  242. *
  243. * 第三方程序向微信发送信息需要传入SendMessageToWXReq结构体,信息类型包括文本消息和多媒体消息,
  244. * 分别对应于text和message成员。调用该方法后,微信处理完信息会向第三方程序发送一个处理结果。
  245. * @see SendMessageToWXResp
  246. */
  247. @interface SendMessageToWXReq : BaseReq
  248. /** 发送消息的文本内容
  249. * @note 文本长度必须大于0且小于10K
  250. */
  251. @property (nonatomic, copy) NSString *text;
  252. /** 发送消息的多媒体内容
  253. * @see WXMediaMessage
  254. */
  255. @property (nonatomic, strong) WXMediaMessage *message;
  256. /** 发送消息的类型,包括文本消息和多媒体消息两种,两者只能选择其一,不能同时发送文本和多媒体消息 */
  257. @property (nonatomic, assign) BOOL bText;
  258. /** 发送的目标场景,可以选择发送到会话(WXSceneSession)或者朋友圈(WXSceneTimeline)。 默认发送到会话。
  259. * @see WXScene
  260. */
  261. @property (nonatomic, assign) int scene;
  262. /** 指定发送消息的人
  263. * @note WXSceneSpecifiedSession时有效
  264. */
  265. @property (nonatomic, copy, nullable) NSString *toUserOpenId;
  266. /** 目标场景附带信息
  267. * @note 目前只针对状态场景
  268. */
  269. @property (nonatomic, strong) WXSceneDataObject *sceneDataObject;
  270. @end
  271. #pragma mark - SendMessageToWXResp
  272. /*! @brief 微信终端向第三方程序返回的SendMessageToWXReq处理结果。
  273. *
  274. * 第三方程序向微信终端发送SendMessageToWXReq后,微信发送回来的处理结果,该结果用SendMessageToWXResp表示。
  275. */
  276. @interface SendMessageToWXResp : BaseResp
  277. @property(nonatomic, copy) NSString *lang;
  278. @property(nonatomic, copy) NSString *country;
  279. @end
  280. #pragma mark - GetMessageFromWXReq
  281. /*! @brief 微信终端向第三方程序请求提供内容的消息结构体。
  282. *
  283. * 微信终端向第三方程序请求提供内容,微信终端会向第三方程序发送GetMessageFromWXReq消息结构体,
  284. * 需要第三方程序调用sendResp返回一个GetMessageFromWXResp消息结构体。
  285. */
  286. @interface GetMessageFromWXReq : BaseReq
  287. @property (nonatomic, strong) NSString *lang;
  288. @property (nonatomic, strong) NSString *country;
  289. @end
  290. #pragma mark - GetMessageFromWXResp
  291. /*! @brief 微信终端向第三方程序请求提供内容,第三方程序向微信终端返回的消息结构体。
  292. *
  293. * 微信终端向第三方程序请求提供内容,第三方程序调用sendResp向微信终端返回一个GetMessageFromWXResp消息结构体。
  294. */
  295. @interface GetMessageFromWXResp : BaseResp
  296. /** 向微信终端提供的文本内容
  297. @note 文本长度必须大于0且小于10K
  298. */
  299. @property (nonatomic, strong) NSString *text;
  300. /** 向微信终端提供的多媒体内容。
  301. * @see WXMediaMessage
  302. */
  303. @property (nonatomic, strong) WXMediaMessage *message;
  304. /** 向微信终端提供内容的消息类型,包括文本消息和多媒体消息两种,两者只能选择其一,不能同时发送文本和多媒体消息 */
  305. @property (nonatomic, assign) BOOL bText;
  306. @end
  307. #pragma mark - ShowMessageFromWXReq
  308. /*! @brief 微信通知第三方程序,要求第三方程序显示的消息结构体。
  309. *
  310. * 微信需要通知第三方程序显示或处理某些内容时,会向第三方程序发送ShowMessageFromWXReq消息结构体。
  311. * 第三方程序处理完内容后调用sendResp向微信终端发送ShowMessageFromWXResp。
  312. */
  313. @interface ShowMessageFromWXReq : BaseReq
  314. /** 微信终端向第三方程序发送的要求第三方程序处理的多媒体内容
  315. * @see WXMediaMessage
  316. */
  317. @property (nonatomic, strong) WXMediaMessage *message;
  318. @property (nonatomic, copy) NSString *lang;
  319. @property (nonatomic, copy) NSString *country;
  320. @end
  321. #pragma mark - ShowMessageFromWXResp
  322. /*! @brief 微信通知第三方程序,要求第三方程序显示或处理某些消息,第三方程序处理完后向微信终端发送的处理结果。
  323. *
  324. * 微信需要通知第三方程序显示或处理某些内容时,会向第三方程序发送ShowMessageFromWXReq消息结构体。
  325. * 第三方程序处理完内容后调用sendResp向微信终端发送ShowMessageFromWXResp。
  326. */
  327. @interface ShowMessageFromWXResp : BaseResp
  328. @end
  329. #pragma mark - LaunchFromWXReq
  330. /*! @brief 微信终端打开第三方程序携带的消息结构体
  331. *
  332. * 微信向第三方发送的结构体,第三方不需要返回
  333. */
  334. @interface LaunchFromWXReq : BaseReq
  335. @property (nonatomic, strong) WXMediaMessage *message;
  336. @property (nonatomic, copy) NSString *lang;
  337. @property (nonatomic, copy) NSString *country;
  338. @end
  339. #pragma mark - OpenWebviewReq
  340. /* ! @brief 第三方通知微信启动内部浏览器,打开指定网页
  341. *
  342. * 第三方通知微信启动内部浏览器,打开指定Url对应的网页
  343. */
  344. @interface OpenWebviewReq : BaseReq
  345. /** 需要打开的网页对应的Url
  346. * @attention 长度不能超过1024
  347. */
  348. @property(nonatomic, copy) NSString *url;
  349. @end
  350. #pragma mark - OpenWebviewResp
  351. /*! @brief 微信终端向第三方程序返回的OpenWebviewReq处理结果
  352. *
  353. * 第三方程序向微信终端发送OpenWebviewReq后,微信发送回来的处理结果,该结果用OpenWebviewResp表示
  354. */
  355. @interface OpenWebviewResp : BaseResp
  356. @end
  357. #pragma mark - WXOpenBusinessWebViewReq
  358. /*! @brief 第三方通知微信启动内部浏览器,打开指定业务的网页
  359. *
  360. *
  361. */
  362. @interface WXOpenBusinessWebViewReq : BaseReq
  363. /** 网页业务类型
  364. * @attention
  365. */
  366. @property (nonatomic, assign) UInt32 businessType;
  367. /** 网页业务参数
  368. * @attention
  369. */
  370. @property (nonatomic, strong, nullable) NSDictionary *queryInfoDic;
  371. @end
  372. #pragma mark - WXOpenBusinessWebViewResp
  373. /*! @brief 微信终端向第三方程序返回的WXOpenBusinessWebViewResp处理结果。
  374. *
  375. * 第三方程序向微信终端发送WXOpenBusinessWebViewReq后,微信发送回来的处理结果,该结果用WXOpenBusinessWebViewResp表示。
  376. */
  377. @interface WXOpenBusinessWebViewResp : BaseResp
  378. /** 第三方程序自定义简单数据,微信终端会回传给第三方程序处理
  379. * @attention 长度不能超过2k
  380. */
  381. @property (nonatomic, copy) NSString *result;
  382. /** 网页业务类型
  383. * @attention
  384. */
  385. @property (nonatomic, assign) UInt32 businessType;
  386. @end
  387. #pragma mark - OpenRankListReq
  388. /* ! @brief 第三方通知微信,打开硬件排行榜
  389. *
  390. * 第三方通知微信,打开硬件排行榜
  391. */
  392. @interface OpenRankListReq : BaseReq
  393. @end
  394. #pragma mark - OpenRanklistResp
  395. /*! @brief 微信终端向第三方程序返回的OpenRankListReq处理结果。
  396. *
  397. * 第三方程序向微信终端发送OpenRankListReq后,微信发送回来的处理结果,该结果用OpenRankListResp表示。
  398. */
  399. @interface OpenRankListResp : BaseResp
  400. @end
  401. #pragma mark - WXCardItem
  402. @interface WXCardItem : NSObject
  403. /** 卡id
  404. * @attention 长度不能超过1024字节
  405. */
  406. @property (nonatomic, copy) NSString *cardId;
  407. /** ext信息
  408. * @attention 长度不能超过2024字节
  409. */
  410. @property (nonatomic, copy, nullable) NSString *extMsg;
  411. /**
  412. * @attention 卡的状态,req不需要填。resp:0为未添加,1为已添加。
  413. */
  414. @property (nonatomic, assign) UInt32 cardState;
  415. /**
  416. * @attention req不需要填,chooseCard返回的。
  417. */
  418. @property (nonatomic, copy) NSString *encryptCode;
  419. /**
  420. * @attention req不需要填,chooseCard返回的。
  421. */
  422. @property (nonatomic, copy) NSString *appID;
  423. @end;
  424. #pragma mark - WXInvoiceItem
  425. @interface WXInvoiceItem : NSObject
  426. /** 卡id
  427. * @attention 长度不能超过1024字节
  428. */
  429. @property (nonatomic, copy) NSString *cardId;
  430. /** ext信息
  431. * @attention 长度不能超过2024字节
  432. */
  433. @property (nonatomic, copy, nullable) NSString *extMsg;
  434. /**
  435. * @attention 卡的状态,req不需要填。resp:0为未添加,1为已添加。
  436. */
  437. @property (nonatomic, assign) UInt32 cardState;
  438. /**
  439. * @attention req不需要填,chooseCard返回的。
  440. */
  441. @property (nonatomic, copy) NSString *encryptCode;
  442. /**
  443. * @attention req不需要填,chooseCard返回的。
  444. */
  445. @property (nonatomic, copy) NSString *appID;
  446. @end
  447. #pragma mark - AddCardToWXCardPackageReq
  448. /* ! @brief 请求添加卡券至微信卡包
  449. *
  450. */
  451. @interface AddCardToWXCardPackageReq : BaseReq
  452. /** 卡列表
  453. * @attention 个数不能超过40个 类型WXCardItem
  454. */
  455. @property (nonatomic, strong) NSArray *cardAry;
  456. @end
  457. #pragma mark - AddCardToWXCardPackageResp
  458. /** ! @brief 微信返回第三方添加卡券结果
  459. *
  460. */
  461. @interface AddCardToWXCardPackageResp : BaseResp
  462. /** 卡列表
  463. * @attention 个数不能超过40个 类型WXCardItem
  464. */
  465. @property (nonatomic, strong) NSArray *cardAry;
  466. @end
  467. #pragma mark - WXChooseCardReq
  468. /* ! @brief 请求从微信选取卡券
  469. *
  470. */
  471. @interface WXChooseCardReq : BaseReq
  472. @property (nonatomic, copy) NSString *appID;
  473. @property (nonatomic, assign) UInt32 shopID;
  474. @property (nonatomic, assign) UInt32 canMultiSelect;
  475. @property (nonatomic, copy) NSString *cardType;
  476. @property (nonatomic, copy) NSString *cardTpID;
  477. @property (nonatomic, copy) NSString *signType;
  478. @property (nonatomic, copy) NSString *cardSign;
  479. @property (nonatomic, assign) UInt32 timeStamp;
  480. @property (nonatomic, copy) NSString *nonceStr;
  481. @end
  482. #pragma mark - WXChooseCardResp
  483. /** ! @brief 微信返回第三方请求选择卡券结果
  484. *
  485. */
  486. @interface WXChooseCardResp : BaseResp
  487. @property (nonatomic, strong ) NSArray* cardAry;
  488. @end
  489. #pragma mark - WXChooseInvoiceReq
  490. /* ! @brief 请求从微信选取发票
  491. *
  492. */
  493. @interface WXChooseInvoiceReq : BaseReq
  494. @property (nonatomic, copy) NSString *appID;
  495. @property (nonatomic, assign) UInt32 shopID;
  496. @property (nonatomic, copy) NSString *signType;
  497. @property (nonatomic, copy) NSString *cardSign;
  498. @property (nonatomic, assign) UInt32 timeStamp;
  499. @property (nonatomic, copy) NSString *nonceStr;
  500. @end
  501. #pragma mark - WXChooseInvoiceResp
  502. /** ! @brief 微信返回第三方请求选择发票结果
  503. *
  504. */
  505. @interface WXChooseInvoiceResp : BaseResp
  506. @property (nonatomic, strong) NSArray* cardAry;
  507. @end
  508. #pragma mark - WXSubscriptionReq
  509. @interface WXSubscribeMsgReq : BaseReq
  510. @property (nonatomic, assign) UInt32 scene;
  511. @property (nonatomic, copy) NSString *templateId;
  512. @property (nonatomic, copy, nullable) NSString *reserved;
  513. @end
  514. #pragma mark - WXSubscriptionReq
  515. @interface WXSubscribeMsgResp : BaseResp
  516. @property (nonatomic, copy) NSString *templateId;
  517. @property (nonatomic, assign) UInt32 scene;
  518. @property (nonatomic, copy) NSString *action;
  519. @property (nonatomic, copy) NSString *reserved;
  520. @property (nonatomic, copy, nullable) NSString *openId;
  521. @end
  522. #pragma mark - WXSubscribeMiniProgramMsg
  523. /** ! @brief 第三方请求订阅小程序消息
  524. *
  525. */
  526. @interface WXSubscribeMiniProgramMsgReq : BaseReq
  527. @property (nonatomic, copy) NSString *miniProgramAppid;
  528. @end
  529. #pragma mark - WXSubscriptionReq
  530. @interface WXSubscribeMiniProgramMsgResp : BaseResp
  531. @property(nonatomic, copy) NSString *openId; // 小程序openid
  532. @property(nonatomic, copy) NSString *unionId; // unionId
  533. @property(nonatomic, copy) NSString *nickName; // 用户昵称
  534. @end
  535. #pragma mark - WXinvoiceAuthInsertReq
  536. @interface WXInvoiceAuthInsertReq : BaseReq
  537. @property (nonatomic, copy) NSString *urlString;
  538. @end
  539. #pragma mark - WXinvoiceAuthInsertResp
  540. @interface WXInvoiceAuthInsertResp : BaseResp
  541. @property (nonatomic, copy) NSString *wxOrderId;
  542. @end
  543. #pragma mark - WXMediaMessage
  544. /*! @brief 多媒体消息结构体
  545. *
  546. * 用于微信终端和第三方程序之间传递消息的多媒体消息内容
  547. */
  548. @interface WXMediaMessage : NSObject
  549. + (WXMediaMessage *)message;
  550. /** 标题
  551. * @note 长度不能超过512字节
  552. */
  553. @property (nonatomic, copy) NSString *title;
  554. /** 描述内容
  555. * @note 长度不能超过1K
  556. */
  557. @property (nonatomic, copy) NSString *description;
  558. /** 缩略图数据
  559. * @note 大小不能超过64K
  560. */
  561. @property (nonatomic, strong, nullable) NSData *thumbData;
  562. /**
  563. * @note 长度不能超过64字节
  564. */
  565. @property (nonatomic, copy, nullable) NSString *mediaTagName;
  566. /**
  567. *
  568. */
  569. @property (nonatomic, copy, nullable) NSString *messageExt;
  570. @property (nonatomic, copy, nullable) NSString *messageAction;
  571. /**
  572. * 多媒体数据对象,可以为WXImageObject,WXMusicObject,WXVideoObject,WXWebpageObject等。
  573. */
  574. @property (nonatomic, strong) id mediaObject;
  575. /** 缩略图的hash值
  576. * @note 使用sha256得到,用于计算签名
  577. */
  578. @property (nonatomic, copy, nullable) NSString *thumbDataHash;
  579. /** 消息签名
  580. * @note 用于校验消息体是否被篡改过
  581. */
  582. @property (nonatomic, copy, nullable) NSString *msgSignature;
  583. /*! @brief 设置消息缩略图的方法
  584. *
  585. * @param image 缩略图
  586. * @note 大小不能超过256K
  587. */
  588. - (void)setThumbImage:(UIImage *)image;
  589. @end
  590. #pragma mark - WXImageObject
  591. /*! @brief 多媒体消息中包含的图片数据对象
  592. *
  593. * 微信终端和第三方程序之间传递消息中包含的图片数据对象。
  594. * @note imageData成员不能为空
  595. * @see WXMediaMessage
  596. */
  597. @interface WXImageObject : NSObject
  598. /*! @brief 返回一个WXImageObject对象
  599. *
  600. * @note 返回的WXImageObject对象是自动释放的
  601. */
  602. + (WXImageObject *)object;
  603. /** 图片真实数据内容
  604. * @note 大小不能超过25M
  605. */
  606. @property (nonatomic, strong) NSData *imageData;
  607. /** 图片数据的hash值
  608. * @note 使用sha256得到,用于计算签名
  609. */
  610. @property (nonatomic, copy, nullable) NSString *imgDataHash;
  611. /** 分享的图片消息是否要带小程序入口,若 'entranceMiniProgramUsername' 非空则显示
  612. * 仅部分小程序类目可用
  613. * @note 本字段为空则发送普通app图片消息
  614. */
  615. @property (nonatomic, copy, nullable) NSString *entranceMiniProgramUsername;
  616. /** 分享的图片消息显示的小程序入口可以跳转的小程序路径
  617. * 仅当 'entranceMiniProgramUsername' 非空时生效
  618. */
  619. @property (nonatomic, copy, nullable) NSString *entranceMiniProgramPath;
  620. @end
  621. #pragma mark - WXMusicObject
  622. /*! @brief 多媒体消息中包含的音乐数据对象
  623. *
  624. * 微信终端和第三方程序之间传递消息中包含的音乐数据对象。
  625. * @note musicUrl和musicLowBandUrl成员不能同时为空。
  626. * @see WXMediaMessage
  627. */
  628. @interface WXMusicObject : NSObject
  629. /*! @brief 返回一个WXMusicObject对象
  630. *
  631. * @note 返回的WXMusicObject对象是自动释放的
  632. */
  633. + (WXMusicObject *)object;
  634. /** 音乐网页的url地址
  635. * @note 长度不能超过10K
  636. */
  637. @property (nonatomic, copy) NSString *musicUrl;
  638. /** 音乐lowband网页的url地址
  639. * @note 长度不能超过10K
  640. */
  641. @property (nonatomic, copy) NSString *musicLowBandUrl;
  642. /** 音乐数据url地址
  643. * @note 长度不能超过10K
  644. */
  645. @property (nonatomic, copy) NSString *musicDataUrl;
  646. /**音乐lowband数据url地址
  647. * @note 长度不能超过10K
  648. */
  649. @property (nonatomic, copy) NSString *musicLowBandDataUrl;
  650. /**音乐封面图Url
  651. * @note 长度不能超过10K
  652. */
  653. @property (nonatomic, copy) NSString *songAlbumUrl;
  654. /**歌词信息 LRC格式
  655. * @note 长度不能超过32K
  656. */
  657. @property (nonatomic, copy, nullable) NSString *songLyric;
  658. @end
  659. #pragma mark - WXMusicVideoObject
  660. @interface WXMusicVipInfo : NSObject
  661. /**付费歌曲的id
  662. * @note 长度不能超过32K
  663. */
  664. @property (nonatomic, copy) NSString *musicId;
  665. @end
  666. @interface WXMusicVideoObject : NSObject
  667. /*! @brief 返回一个WXMusicVideoObject对象
  668. *
  669. * @note 返回的WXMusicVideoObject对象是自动释放的
  670. */
  671. + (WXMusicVideoObject *)object;
  672. /** 音乐网页的url地址
  673. * @note 长度不能超过10K,不能为空
  674. */
  675. @property (nonatomic, copy) NSString *musicUrl;
  676. /** 音乐数据url地址
  677. * @note 长度不能超过10K,不能为空
  678. */
  679. @property (nonatomic, copy) NSString *musicDataUrl;
  680. /**歌手名
  681. * @note 长度不能超过1k,不能为空
  682. */
  683. @property (nonatomic, copy) NSString *singerName;
  684. /**
  685. * @note 音乐时长, 单位毫秒
  686. */
  687. @property (nonatomic, assign) UInt32 duration;
  688. /**歌词信息 LRC格式
  689. * @note 长度不能超过32K
  690. */
  691. @property (nonatomic, copy) NSString *songLyric;
  692. /**高清封面图
  693. * @note 大小不能超过1M
  694. */
  695. @property (nonatomic, strong) NSData *hdAlbumThumbData;
  696. /** 高清封面图数据的hash值
  697. * @note 使用sha256得到,用于计算签名
  698. */
  699. @property (nonatomic, copy, nullable) NSString *hdAlbumThumbFileHash;
  700. /**音乐专辑名称
  701. * @note 长度不能超过1k
  702. */
  703. @property (nonatomic, copy, nullable) NSString *albumName;
  704. /**音乐流派
  705. * @note 长度不能超过1k
  706. */
  707. @property (nonatomic, copy, nullable) NSString *musicGenre;
  708. /**发行时间
  709. * @note Unix时间戳,单位为秒
  710. */
  711. @property (nonatomic, assign) UInt64 issueDate;
  712. /**音乐标识符
  713. * @note 长度不能超过1K,从微信跳回应用时会带上
  714. */
  715. @property (nonatomic, copy, nullable) NSString *identification;
  716. /**运营H5地址
  717. * @note 选填,建议填写,用户进入歌曲详情页将展示内嵌的运营H5,可展示该歌曲的相关评论、歌曲推荐等内容,不可诱导下载、分享等。
  718. */
  719. @property (nonatomic, copy, nullable) NSString *musicOperationUrl;
  720. /** 付费歌曲相关信息
  721. * @note 选填,如果歌曲是需要付费的,那么将付费歌曲id等信息封装在内。
  722. */
  723. @property (nonatomic, strong) WXMusicVipInfo *musicVipInfo;
  724. @end
  725. #pragma mark - WXVideoObject
  726. /*! @brief 多媒体消息中包含的视频数据对象
  727. *
  728. * 微信终端和第三方程序之间传递消息中包含的视频数据对象。
  729. * @note videoUrl和videoLowBandUrl不能同时为空。
  730. * @see WXMediaMessage
  731. */
  732. @interface WXVideoObject : NSObject
  733. /*! @brief 返回一个WXVideoObject对象
  734. *
  735. * @note 返回的WXVideoObject对象是自动释放的
  736. */
  737. + (WXVideoObject *)object;
  738. /** 视频网页的url地址
  739. * @note 长度不能超过10K
  740. */
  741. @property (nonatomic, copy) NSString *videoUrl;
  742. /** 视频lowband网页的url地址
  743. * @note 长度不能超过10K
  744. */
  745. @property (nonatomic, copy) NSString *videoLowBandUrl;
  746. @end
  747. #pragma mark - WXWebpageObject
  748. /*! @brief 多媒体消息中包含的网页数据对象
  749. *
  750. * 微信终端和第三方程序之间传递消息中包含的网页数据对象。
  751. * @see WXMediaMessage
  752. */
  753. @interface WXWebpageObject : NSObject
  754. /*! @brief 返回一个WXWebpageObject对象
  755. *
  756. * @note 返回的WXWebpageObject对象是自动释放的
  757. */
  758. + (WXWebpageObject *)object;
  759. /** 网页的url地址
  760. * @note 不能为空且长度不能超过10K
  761. */
  762. @property (nonatomic, copy) NSString *webpageUrl;
  763. /**是否是私密消息
  764. */
  765. @property (nonatomic, assign) BOOL isSecretMessage;
  766. /** 业务所需的额外信息 */
  767. @property (nonatomic, strong, nullable) NSDictionary *extraInfoDic;
  768. @end
  769. #pragma mark - WXAppExtendObject
  770. /*! @brief 多媒体消息中包含的App扩展数据对象
  771. *
  772. * 第三方程序向微信终端发送包含WXAppExtendObject的多媒体消息,
  773. * 微信需要处理该消息时,会调用该第三方程序来处理多媒体消息内容。
  774. * @note url,extInfo和fileData不能同时为空
  775. * @see WXMediaMessage
  776. */
  777. @interface WXAppExtendObject : NSObject
  778. /*! @brief 返回一个WXAppExtendObject对象
  779. *
  780. * @note 返回的WXAppExtendObject对象是自动释放的
  781. */
  782. + (WXAppExtendObject *)object;
  783. /** 若第三方程序不存在,微信终端会打开该url所指的App下载地址
  784. * @note 长度不能超过10K
  785. */
  786. @property (nonatomic, copy) NSString *url;
  787. /** 第三方程序自定义简单数据,微信终端会回传给第三方程序处理
  788. * @note 长度不能超过2K
  789. */
  790. @property (nonatomic, copy, nullable) NSString *extInfo;
  791. /** App文件数据,该数据发送给微信好友,微信好友需要点击后下载数据,微信终端会回传给第三方程序处理
  792. * @note 大小不能超过10M
  793. */
  794. @property (nonatomic, strong, nullable) NSData *fileData;
  795. @end
  796. #pragma mark - WXEmoticonObject
  797. /*! @brief 多媒体消息中包含的表情数据对象
  798. *
  799. * 微信终端和第三方程序之间传递消息中包含的表情数据对象。
  800. * @see WXMediaMessage
  801. */
  802. @interface WXEmoticonObject : NSObject
  803. /*! @brief 返回一个WXEmoticonObject对象
  804. *
  805. * @note 返回的WXEmoticonObject对象是自动释放的
  806. */
  807. + (WXEmoticonObject *)object;
  808. /** 表情真实数据内容
  809. * @note 大小不能超过10M
  810. */
  811. @property (nonatomic, strong) NSData *emoticonData;
  812. @end
  813. #pragma mark - WXFileObject
  814. /*! @brief 多媒体消息中包含的文件数据对象
  815. *
  816. * @see WXMediaMessage
  817. */
  818. @interface WXFileObject : NSObject
  819. /*! @brief 返回一个WXFileObject对象
  820. *
  821. * @note 返回的WXFileObject对象是自动释放的
  822. */
  823. + (WXFileObject *)object;
  824. /** 文件后缀名
  825. * @note 长度不超过64字节
  826. */
  827. @property (nonatomic, copy) NSString *fileExtension;
  828. /** 文件真实数据内容
  829. * @note 大小不能超过10M
  830. */
  831. @property (nonatomic, strong) NSData *fileData;
  832. @end
  833. #pragma mark - WXLocationObject
  834. /*! @brief 多媒体消息中包含的地理位置数据对象
  835. *
  836. * 微信终端和第三方程序之间传递消息中包含的地理位置数据对象。
  837. * @see WXMediaMessage
  838. */
  839. @interface WXLocationObject : NSObject
  840. /*! @brief 返回一个WXLocationObject对象
  841. *
  842. * @note 返回的WXLocationObject对象是自动释放的
  843. */
  844. + (WXLocationObject *)object;
  845. /** 地理位置信息
  846. * @note 经纬度
  847. */
  848. @property (nonatomic, assign) double lng; //经度
  849. @property (nonatomic, assign) double lat; //纬度
  850. @end
  851. #pragma mark - WXTextObject
  852. /*! @brief 多媒体消息中包含的文本数据对象
  853. *
  854. * 微信终端和第三方程序之间传递消息中包含的文本数据对象。
  855. * @see WXMediaMessage
  856. */
  857. @interface WXTextObject : NSObject
  858. /*! @brief 返回一个WXTextObject对象
  859. *
  860. * @note 返回的WXTextObject对象是自动释放的
  861. */
  862. + (WXTextObject *)object;
  863. /** 地理位置信息
  864. * @note 文本内容
  865. */
  866. @property (nonatomic, copy) NSString *contentText;
  867. @end
  868. #pragma mark - WXMiniProgramObject
  869. @interface WXMiniProgramObject : NSObject
  870. /*! @brief WXMiniProgramObject对象
  871. *
  872. * @note 返回的WXMiniProgramObject对象是自动释放的
  873. */
  874. + (WXMiniProgramObject *)object;
  875. /** 低版本网页链接
  876. * @attention 长度不能超过1024字节
  877. */
  878. @property (nonatomic, copy) NSString *webpageUrl;
  879. /** 小程序username */
  880. @property (nonatomic, copy) NSString *userName;
  881. /** 小程序页面的路径
  882. * @attention 不填默认拉起小程序首页
  883. */
  884. @property (nonatomic, copy, nullable) NSString *path;
  885. /** 小程序新版本的预览图
  886. * @attention 大小不能超过128k
  887. */
  888. @property (nonatomic, strong, nullable) NSData *hdImageData;
  889. /** 是否使用带 shareTicket 的转发 */
  890. @property (nonatomic, assign) BOOL withShareTicket;
  891. /** 分享小程序的版本
  892. * @attention (正式,开发,体验)
  893. */
  894. @property (nonatomic, assign) WXMiniProgramType miniProgramType;
  895. /** 是否禁用转发 */
  896. @property (nonatomic, assign) BOOL disableForward;
  897. @property (nonatomic, assign) BOOL isUpdatableMessage;
  898. @property (nonatomic, assign) BOOL isSecretMessage;
  899. /** 业务所需的额外信息 */
  900. @property (nonatomic, strong, nullable) NSDictionary *extraInfoDic;
  901. @end
  902. #pragma mark - WXGameLiveObject
  903. /*! @brief WXGameLiveObject对象
  904. *
  905. * @note 游戏直播消息类型
  906. */
  907. @interface WXGameLiveObject : NSObject
  908. + (WXGameLiveObject *)object;
  909. /** 业务所需的额外信息 */
  910. @property (nonatomic, strong, nullable) NSDictionary *extraInfoDic;
  911. @end
  912. @interface WXNativeGamePageObject : NSObject
  913. /** 是否为视频类型
  914. */
  915. @property (nonatomic, assign) BOOL isVideo;
  916. /** 视频时长
  917. @note 当为视频类型时,必填;单位为秒
  918. */
  919. @property (nonatomic, assign) UInt32 videoDuration;
  920. /** 透传字段
  921. @note 长度限制为100K
  922. */
  923. @property (nonatomic, copy) NSString *shareData;
  924. /** 缩略图
  925. @note 大小限制为256K
  926. */
  927. @property (nonatomic, strong) NSData *gameThumbData;
  928. + (WXNativeGamePageObject *)object;
  929. @end
  930. #pragma mark - WXLaunchMiniProgramReq
  931. /*! @brief WXLaunchMiniProgramReq对象, 可实现通过sdk拉起微信小程序
  932. *
  933. * @note 返回的WXLaunchMiniProgramReq对象是自动释放的
  934. */
  935. @interface WXLaunchMiniProgramReq : BaseReq
  936. + (WXLaunchMiniProgramReq *)object;
  937. /** 小程序username */
  938. @property (nonatomic, copy) NSString *userName;
  939. /** 小程序页面的路径
  940. * @attention 不填默认拉起小程序首页
  941. */
  942. @property (nonatomic, copy, nullable) NSString *path;
  943. /** 分享小程序的版本
  944. * @attention (正式,开发,体验)
  945. */
  946. @property (nonatomic, assign) WXMiniProgramType miniProgramType;
  947. /** ext信息
  948. * @attention json格式
  949. */
  950. @property (nonatomic, copy, nullable) NSString *extMsg;
  951. /** extDic
  952. * @attention 字典,可存放图片等比较大的数据
  953. */
  954. @property (nonatomic, copy, nullable) NSDictionary *extDic;
  955. @end
  956. #pragma mark - WXLaunchMiniProgramResp
  957. /*! @brief 微信终端向第三方程序返回的WXLaunchMiniProgramReq处理结果。
  958. *
  959. * 第三方程序向微信终端发送WXLaunchMiniProgramReq后,微信发送回来的处理结果,该结果用WXLaunchMiniProgramResp表示。
  960. */
  961. @interface WXLaunchMiniProgramResp : BaseResp
  962. @property (nonatomic, copy, nullable) NSString *extMsg;
  963. @end
  964. #pragma mark - WXOpenBusinessViewReq
  965. /*! @brief WXOpenBusinessViewReq对象, 可实现第三方通知微信启动,打开业务页面
  966. *
  967. * @note 返回的WXOpenBusinessViewReq对象是自动释放的
  968. */
  969. @interface WXOpenBusinessViewReq : BaseReq
  970. + (WXOpenBusinessViewReq *)object;
  971. /** 业务类型
  972. */
  973. @property (nonatomic, copy) NSString *businessType;
  974. /** 业务参数
  975. */
  976. @property (nonatomic, copy, nullable) NSString *query;
  977. /** ext信息
  978. * @note 选填,json格式
  979. */
  980. @property (nonatomic, copy, nullable) NSString *extInfo;
  981. /** extData数据
  982. * @note
  983. */
  984. @property (nonatomic, strong, nullable) NSData *extData;
  985. @end
  986. @interface WXOpenBusinessViewResp : BaseResp
  987. /** 业务类型
  988. */
  989. @property (nonatomic, copy) NSString *businessType;
  990. /** 业务返回数据
  991. */
  992. @property (nonatomic, copy, nullable) NSString *extMsg;
  993. @end
  994. #pragma mark - WXOpenCustomerServiceReq
  995. @interface WXOpenCustomerServiceReq : BaseReq
  996. + (WXOpenCustomerServiceReq *)object;
  997. /**企微客服发起流程 url
  998. */
  999. @property (nonatomic, copy, nullable) NSString *url;
  1000. /**企业 id
  1001. */
  1002. @property (nonatomic, copy, nullable) NSString *corpid;
  1003. @end
  1004. @interface WXOpenCustomerServiceResp : BaseResp
  1005. /** 业务返回数据
  1006. */
  1007. @property (nonatomic, copy, nullable) NSString *extMsg;
  1008. @end
  1009. #pragma mark - WXChannelStartLiveReq
  1010. @interface WXChannelStartLiveReq : BaseReq
  1011. + (WXChannelStartLiveReq *)object;
  1012. /** 必填,直播业务数据(json格式)
  1013. */
  1014. @property (nonatomic, copy) NSString *liveJsonInfo;
  1015. @end
  1016. @interface WXChannelStartLiveResp : BaseResp
  1017. /** 业务返回数据
  1018. */
  1019. @property (nonatomic, copy, nullable) NSString *extMsg;
  1020. @end
  1021. NS_ASSUME_NONNULL_END