AlipaySDK.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. //
  2. // AlipaySDK.h
  3. // AlipaySDK
  4. //
  5. // Created by antfin on 17-10-24.
  6. // Copyright (c) 2017年 AntFin. All rights reserved.
  7. //
  8. ////////////////////////////////////////////////////////
  9. ///////////////// 支付宝标准版本支付SDK ///////////////////
  10. /////////// version:15.6.2 motify:2019.03.16///////////
  11. ////////////////////////////////////////////////////////
  12. #import <UIKit/UIKit.h>
  13. #import "APayAuthInfo.h"
  14. typedef void(^CompletionBlock)(NSDictionary *resultDic);
  15. typedef enum {
  16. ALIPAY_TIDFACTOR_IMEI,
  17. ALIPAY_TIDFACTOR_IMSI,
  18. ALIPAY_TIDFACTOR_TID,
  19. ALIPAY_TIDFACTOR_CLIENTKEY,
  20. ALIPAY_TIDFACTOR_VIMEI,
  21. ALIPAY_TIDFACTOR_VIMSI,
  22. ALIPAY_TIDFACTOR_CLIENTID,
  23. ALIPAY_TIDFACTOR_APDID,
  24. ALIPAY_TIDFACTOR_MAX
  25. } AlipayTidFactor;
  26. @interface AlipaySDK : NSObject
  27. /**
  28. * 创建支付单例服务
  29. *
  30. * @return 返回单例对象
  31. */
  32. + (AlipaySDK *)defaultService;
  33. /**
  34. * 用于设置SDK使用的window,如果没有自行创建window无需设置此接口
  35. */
  36. @property (nonatomic, weak) UIWindow *targetWindow;
  37. //////////////////////////////////////////////////////////////////////////////////////////////
  38. //////////////////////////支付宝支付相关接口/////////////////////////////////////////////////////
  39. //////////////////////////////////////////////////////////////////////////////////////////////
  40. /**
  41. * 支付接口
  42. *
  43. * @param orderStr 支付订单信息字串
  44. * @param schemeStr 调用支付的app注册在info.plist中的scheme
  45. * @param completionBlock 支付结果回调Block,用于wap支付结果回调
  46. 跳转支付宝支付时只有当processOrderWithPaymentResult接口的completionBlock为nil时会使用这个bolock
  47. */
  48. - (void)payOrder:(NSString *)orderStr
  49. fromScheme:(NSString *)schemeStr
  50. callback:(CompletionBlock)completionBlock;
  51. /**
  52. * 支付接口 v2
  53. *
  54. * @param orderStr 支付订单信息字串
  55. * @param dynamicLaunch 是否使用动态配置策略跳转支付宝支付
  56. * @param schemeStr 调用支付的app注册在info.plist中的scheme
  57. * @param completionBlock 支付结果回调Block,用于wap支付结果回调
  58. 跳转支付宝支付时只有当processOrderWithPaymentResult接口的completionBlock为nil时会使用这个bolock
  59. */
  60. - (void)payOrder:(NSString *)orderStr
  61. dynamicLaunch:(BOOL)dynamicLaunch
  62. fromScheme:(NSString *)schemeStr
  63. callback:(CompletionBlock)completionBlock;
  64. /**
  65. * 处理支付宝app支付后跳回商户app携带的支付结果Url
  66. *
  67. * @param resultUrl 支付宝app返回的支付结果url
  68. * @param completionBlock 支付结果回调 为nil时默认使用支付接口的completionBlock
  69. */
  70. - (void)processOrderWithPaymentResult:(NSURL *)resultUrl
  71. standbyCallback:(CompletionBlock)completionBlock;
  72. /**
  73. * 获取交易token。
  74. *
  75. * @return 交易token,若无则为空。
  76. */
  77. - (NSString *)fetchTradeToken;
  78. //////////////////////////////////////////////////////////////////////////////////////////////
  79. //////////////////////////支付宝授权 2.0 相关接口////////////////////////////////////////////////
  80. //////////////////////////////////////////////////////////////////////////////////////////////
  81. /**
  82. * 快登授权2.0
  83. *
  84. * @param infoStr 授权请求信息字串
  85. * @param schemeStr 调用授权的app注册在info.plist中的scheme
  86. * @param completionBlock 授权结果回调,需要调用方在appDelegate中调用processAuth_V2Result:standbyCallback:方法获取授权结果
  87. * 若在授权过程中,调用方应用被系统终止则此block无效(此时会调用'processAuth_V2Result:standbyCallback:'传入的standbyCallback)
  88. */
  89. - (void)auth_V2WithInfo:(NSString *)infoStr
  90. fromScheme:(NSString *)schemeStr
  91. callback:(CompletionBlock)completionBlock;
  92. /**
  93. * 处理支付宝app授权后跳回商户app携带的授权结果Url
  94. *
  95. * @param resultUrl 支付宝app返回的授权结果url
  96. * @param completionBlock 授权结果回调,用于处理跳转支付宝授权过程中商户APP被系统终止的情况
  97. */
  98. - (void)processAuth_V2Result:(NSURL *)resultUrl
  99. standbyCallback:(CompletionBlock)completionBlock;
  100. //////////////////////////////////////////////////////////////////////////////////////////////
  101. //////////////////////////支付宝授权 1.0 相关接口////////////////////////////////////////////////
  102. //////////////////////////////////////////////////////////////////////////////////////////////
  103. /**
  104. * 快登授权
  105. * @param authInfo 授权相关信息
  106. * @param completionBlock 授权结果回调,若在授权过程中,调用方应用被系统终止,则此block无效,
  107. 需要调用方在appDelegate中调用processAuth_V2Result:standbyCallback:方法获取授权结果
  108. */
  109. - (void)authWithInfo:(APayAuthInfo *)authInfo
  110. callback:(CompletionBlock)completionBlock;
  111. /**
  112. * 处理支付宝app授权后跳回商户app携带的授权结果Url
  113. *
  114. * @param resultUrl 支付宝app返回的授权结果url
  115. * @param completionBlock 授权结果回调
  116. */
  117. - (void)processAuthResult:(NSURL *)resultUrl
  118. standbyCallback:(CompletionBlock)completionBlock;
  119. //////////////////////////////////////////////////////////////////////////////////////////////
  120. //////////////////////////支付宝 h5 支付转 native 支付接口////////////////////////////////////////
  121. //////////////////////////////////////////////////////////////////////////////////////////////
  122. /**
  123. * 从h5链接中获取订单串并支付接口(自版本15.4.0起,推荐使用该接口)
  124. *
  125. * @param urlStr 拦截的 url string
  126. *
  127. * @return YES为成功获取订单信息并发起支付流程;NO为无法获取订单信息,输入url是普通url
  128. */
  129. - (BOOL)payInterceptorWithUrl:(NSString *)urlStr
  130. fromScheme:(NSString *)schemeStr
  131. callback:(CompletionBlock)completionBlock;
  132. //////////////////////////////////////////////////////////////////////////////////////////////
  133. //////////////////////////支付宝 tid 相关信息获取接口/////////////////////////////////////////////
  134. //////////////////////////////////////////////////////////////////////////////////////////////
  135. /**
  136. * 获取当前tid相关信息
  137. *
  138. * @return tid相关信息
  139. */
  140. - (NSString*)queryTidFactor:(AlipayTidFactor)factor;
  141. //////////////////////////////////////////////////////////////////////////////////////////////
  142. //////////////////////////支付宝支付环境相关信息接口//////////////////////////////////////////////
  143. //////////////////////////////////////////////////////////////////////////////////////////////
  144. /**
  145. * 是否已经使用过
  146. *
  147. * @return YES为已经使用过,NO反之
  148. */
  149. - (BOOL)isLogined;
  150. /**
  151. * 获取当前版本号
  152. *
  153. * @return 当前版本字符串
  154. */
  155. - (NSString *)currentVersion;
  156. /**
  157. * 測試所用,realse包无效
  158. *
  159. * @param url 测试环境
  160. */
  161. - (void)setUrl:(NSString *)url;
  162. /**
  163. * 支付前主动更新本地配置
  164. *
  165. * @param block 更新请求结果回调
  166. */
  167. - (void)fetchSdkConfigWithBlock:(void(^)(BOOL success))block;
  168. @end