猎豆优选

TBSDKMTOPEnvConfig.h 6.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. //
  2. // TBSDKMTOPEnvConfig.h
  3. // MtopSDK
  4. //
  5. // Created by wuchen.xj on 2019/1/22.
  6. // Copyright © 2019年 Taobao.com. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. /**
  10. * 默认 MTOP 网关域名,分别为线上、预发、日常
  11. */
  12. #define DEFAULT_MTOP_GATEWAY_RELEASE @"acs.m.taobao.com"
  13. #define DEFAULT_MTOP_GATEWAY_DEBUG @"acs.wapa.taobao.com"
  14. #define DEFAULT_MTOP_GATEWAY_DAILY @"acs.waptest.taobao.com"
  15. /**
  16. * MTOP 环境类型
  17. */
  18. typedef NS_ENUM(NSInteger,MtopEnvironment) {
  19. environmentDebug = 1, // 预发环境
  20. environmentDaily, // 日常环境
  21. environmentDailyTwo, // 日常二套环境
  22. environmentRelease // 正式环境
  23. };
  24. typedef NS_OPTIONS(NSUInteger, MtopType) {
  25. kTypeInner = 0,
  26. kTypeOpen = 1
  27. };
  28. /**
  29. * 签名接口
  30. */
  31. @protocol TBSDKSignProtocol <NSObject>
  32. /**
  33. * 老签名接口
  34. */
  35. - (NSString *)signWithAppkey:(NSString *)appkey
  36. withAuthCode:(NSString *)authcode
  37. withApiName:(NSString *)apiName
  38. withApiVersion:(NSString *)apiVersion
  39. withData:(NSDictionary *)data
  40. withHeaders:(NSDictionary *)headers;
  41. /**
  42. * 新签名接口
  43. */
  44. - (NSDictionary *)getSecurityFactors:(NSString *)appkey
  45. withAuthCode:(NSString *)authcode
  46. withApiName:(NSString *)apiName
  47. withApiVersion:(NSString *)apiVersion
  48. withData:(NSDictionary *)data
  49. withHeaders:(NSDictionary *)headers
  50. withUseWua:(BOOL)useWua
  51. withEnvironment:(NSInteger)env;
  52. @end
  53. /**
  54. * 底层MTOPSDK环境配置
  55. */
  56. @interface TBSDKMTOPEnvConfig : NSObject
  57. /**
  58. * 是否使用安全保镖, 二三方版本强制为YES
  59. */
  60. @property (nonatomic, assign) BOOL useSecurityGuard;
  61. /**
  62. * 在使用安全保镖的情况下,如果存在多张安全图片的场景,指定当前实例使用哪张图片。
  63. * 例如安全图片文件名为:yw_1222.jpg 或 yw_1222_mwua.jpg , 其中前者的auth code 为 “”,
  64. * 后者的auth code 为 “mwua”,所有安全图片均以 yw_1222 为前缀。
  65. */
  66. @property (nonatomic, strong) NSString *authCode;
  67. /**
  68. * App Key.
  69. * 若 useSecurityGuard=NO,该值需要上层自己来设置;否则SDK根据环境和authCode自动通过
  70. * 无线保镖SDK读取出存储在安全图片中的appkey.
  71. */
  72. @property (nonatomic, strong) NSString *appkey;
  73. /**
  74. * App Secret.
  75. * 若 useSecurityGuard=NO,该值需要上层自己来设置;否则SDK根据环境和appKey自动通过
  76. * 无线保镖SDK读取出存储在安全图片中的appSecret.
  77. */
  78. @property (nonatomic, strong) NSString *appSecret;
  79. /**
  80. * 自定义从安全图片中指定位置读取appkey.
  81. * 正常情况下,一张安全图片中同时存在三个环境的appkey, 线上、预发、日常,分别存储在安全图片的
  82. * 内部 index 为 0、1、2 的位置,SDK 会自动根据当前环境取对应位置上的appkey。但若业务需要
  83. * 自定义在指定索引位置读取,则可以通过该参数来设置。
  84. *
  85. * 因涉及无线保镖,故该参数只在 useSecurityGuard=YES 的情况下有效.
  86. */
  87. @property (nonatomic, assign) NSUInteger appkeyIndex;
  88. /**
  89. * 当前MTOP网关,默认情况下,其值为:
  90. * 线上:DEFAULT_MTOP_GATEWAY_RELEASE
  91. * 预发:DEFAULT_MTOP_GATEWAY_DEBUG
  92. * 日常:DEFAULT_MTOP_GATEWAY_DAILY
  93. *
  94. * 若业务需要自定义域名,可直接覆写该变量。注意,若业务自己覆写,则需要自行处理线上、预发、日常三个不同环境。
  95. */
  96. @property (nonatomic, strong) NSString *gatewayDomain;
  97. /**
  98. * 业务配置版本号,用于交易单元化持久化配置
  99. */
  100. @property (atomic, copy) NSString *appConfVersion;
  101. /**
  102. * 交易单元域名列表,由外部初始化时设置。
  103. * index 0 : 线上环境
  104. * index 1 : 预发环境
  105. * index 2 : 日常环境
  106. */
  107. @property (atomic, strong) NSArray *tradeUnitDomainList;
  108. /**
  109. * 交易API列表
  110. */
  111. @property (atomic, strong) NSArray *needUpdateTradeUnitList;
  112. /**
  113. * 是否开启HTTPS, 默认YES.
  114. * YES: mtop http url 以 'https://' 开头;
  115. * NO: mtop http url 以 'http://' 开头.
  116. * 注意:若该变量为 NO,会强制全局为 http;若该变量设置为 YES, 请求维度仍可单独降级为 http.
  117. */
  118. @property (nonatomic, assign) BOOL enableHttps;
  119. /**
  120. * 登录态下,当前用户UID
  121. */
  122. @property (nonatomic, strong) NSString *uid;
  123. /**
  124. * 该接口废弃。
  125. */
  126. @property (nonatomic, strong) NSString *customMtopRequestURL DEPRECATED_MSG_ATTRIBUTE("请使用 gatewayDomain 代替");
  127. /**
  128. * 该接口废弃。
  129. */
  130. @property (nonatomic, assign) MtopEnvironment environment DEPRECATED_MSG_ATTRIBUTE("为保证代码兼容性,暂未删除");
  131. /**
  132. * 该接口废弃。
  133. */
  134. + (instancetype)shareInstance DEPRECATED_MSG_ATTRIBUTE("为保证代码兼容性,暂未删除");
  135. /**
  136. * 通过实例ID来获取对应实例。其中已经内置ID为 MTOP_ID_INNER 与 MTOP_ID_OPEN 实例, 如果需要新增实例,请通过
  137. * mtopsdk_configuration.plist 配置文件来新增实例,只有在 plist 中注册过的ID,才可以使用。配置文件配置规则(示例)如下:
  138. *
  139. * ROOT (dictionary)
  140. * |---ExternalInstances (dictionary)
  141. * |---- @"id1":@"0" (0 表示该实例类型为二方实例)
  142. * |-----@"id2":@"1" (1 表示该实例类型为三方实例)
  143. *
  144. * 注意:ID为 MTOP_ID_INNER 与 MTOP_ID_OPEN 实例不可在配置文件中修改类型,已经分别设置为二方、三方实力。若不是
  145. * MTOP_ID_INNER 与 MTOP_ID_OPEN,且名称未在plist中注册,返回nil.
  146. *
  147. * @param Id 索引MTOP实例的KEY值。可以为 MTOP_ID_INNER/MTOP_ID_OPEN 或者定义在 mtopsdk_configuration.plist 中
  148. * @return MTOP实例。若非内置实例且名称未注册,则返回nil.
  149. */
  150. + (instancetype) shareInstanceWithID:(NSString *)Id;
  151. /**
  152. * 设置环境。
  153. */
  154. + (void)setEnvironment:(MtopEnvironment)env;
  155. /**
  156. * 获取环境。
  157. */
  158. + (MtopEnvironment)currentEnvironment;
  159. /**
  160. * 获取当前实例ID。
  161. */
  162. - (NSString *)ID;
  163. /**
  164. * appkey
  165. */
  166. - (NSString *)appkey;
  167. /**
  168. * UTDID
  169. */
  170. - (NSString *)readUtdid;
  171. /**
  172. * 重新从磁盘加载交易单元配置信息
  173. */
  174. - (void)fetchTradeUnitListFromDisk;
  175. /**
  176. * 签名实现注入。
  177. * 注意:同一个实例,只准在初始化中注入一次,不容许重复注入!
  178. */
  179. - (void)setupSignHandler:(id<TBSDKSignProtocol>)handler;
  180. /**
  181. * 签名接口。
  182. */
  183. - (id<TBSDKSignProtocol>)signHandler;
  184. /**
  185. * 工具函数, URL Encoding.
  186. */
  187. + (NSString *)urlEncodeString:(NSString *) string;
  188. @end