WXApiObject.h 34 KB

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