BDNCashierSDK.h
6.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
//
// BDNCashierSDK.h
// BainuoCashierSDK
//
// Created by Jack on 2019/7/30.
// Copyright © 2019 Baidu. All rights reserved.
//
#import "BDNCashierSDKObject.h"
#pragma mark - 收银台接口方法
@interface BDNCashierSDK : NSObject
/**
* @brief 获取SDK版本号
*
* @return SDK版本号
*/
+ (NSString *)SDKVersion;
/**
* @brief 获取当前运行环境
*
* @return 当前运行环境,默认为线上正式环境
*/
+ (BDNCashierEnvironment)environment;
/**
* @brief 设置SDK运行环境
*
* @param environment 运行环境
*/
+ (void)setEnvironment:(BDNCashierEnvironment)environment;
#pragma mark - 支付业务接口
/**
* @brief 注册支付能力
*
* @param services 宿主需要的支付能力
*/
+ (void)registerPaymentServices:(NSArray<id<BDNCashierSDKPaymentServiceProtocol>> *)services;
/**
* @brief 调起聚合收银台服务
*
* @param dealReq 调起收银台服务所需数据的模型封装
*/
+ (void)showCashierDesk:(BDNCashierDealReq *)dealReq;
/**
* @brief 调起收银台优惠券页面
*
* @param couponReq 调起收银台优惠券页面所需数据的模型封装
*/
+ (void)showCashierCoupon:(BDNCashierCouponReq *)couponReq;
/**
* @brief 免密/周期代扣签约(跳转支付渠道App)
*
* @param params 请求参数
* @param responseBlock 成功回调
* @param failedBlock 失败回调
*/
+ (void)startSignWithParams:(NSDictionary *)params responseBlock:(void(^)(NSDictionary *response))responseBlock failedBlock:(void(^)(NSError *error))failedBlock;
/**
* @brief 处理某些支付服务的回调信息(通过URL回调)
* @note 在AppDelegate方法:`- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation`中调用,用于透传url给相关支付能力处理
*
* @param url 第三方支付回调信息
* @return 是否能被处理
*/
+ (BOOL)handleOpenURL:(NSURL *)url;
/**
* @brief 处理某些支付服务的回调信息(通过UniversalLink回调)
* @note 在AppDelegate方法:`- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray *restorableObjects))restorationHandler`中调用,用于透传userActivity给相关支付能力处理
*
* @param userActivity 第三方支付回调信息
* @return 是否能被处理
*/
+ (BOOL)handleUniversalLink:(NSUserActivity *)userActivity;
#pragma mark - 网络数据请求接口(直接向支付 server 请求/发送相关业务数据)
/**
* @brief 获取支付渠道列表(channelAllInfo)
*
* @param params 请求参数
* @param responseBlock 成功回调
* @param failedBlock 失败回调
*/
+ (void)requestChannelInfoWithParams:(NSDictionary *)params responseBlock:(void(^)(NSDictionary *response))responseBlock failedBlock:(void(^)(NSError *error))failedBlock;
/**
* @brief 算价(calcMoney)
*
* @param params 请求参数
* @param responseBlock 成功回调
* @param failedBlock 失败回调
*/
+ (void)calculatePriceWithParams:(NSDictionary *)params responseBlock:(void(^)(NSDictionary *response))responseBlock failedBlock:(void(^)(NSError *error))failedBlock;
/**
* @brief 上报单次分佣数据(带货分佣 )
*
* @param data 分佣数据
* @param completion 完成回调,标识上报是否成功
*/
+ (void)reportCommisionData:(NSDictionary *)data completion:(void(^)(BOOL))completion;
/**
* @brief 触发批量上报分佣数据(SDK内部存储的单次上报失败的带货分佣数据)
*
* @param completion 完成回调,标识上报是否成功
*/
+ (void)reportBatchedCommisionData:(void(^)(BOOL))completion;
/**
* @brief 触发统计数据上报
*/
+ (void)reportStatisticalData;
/**
* @brief 支付设置-免密支付、周期代扣的签约信息、状态查询
*
* @param params 请求参数
* @param responseBlock 成功回调
* @param failedBlock 失败回调
*/
+ (void)querySignInfoWithParams:(NSDictionary *)params responseBlock:(void(^)(NSDictionary *response))responseBlock failedBlock:(void(^)(NSError *error))failedBlock;
/**
* @brief 支付设置-免密支付签约/解约
*
* @param params 请求参数
* @param responseBlock 成功回调
* @param failedBlock 失败回调
*/
+ (void)operateSignWithParams:(NSDictionary *)params responseBlock:(void(^)(NSDictionary *response))responseBlock failedBlock:(void(^)(NSError *error))failedBlock;
/**
* @brief 支付设置-免密支付开关
*
* @param params 请求参数
* @param responseBlock 成功回调
* @param failedBlock 失败回调
*/
+ (void)operatePlatSignWithParams:(NSDictionary *)params responseBlock:(void(^)(NSDictionary *response))responseBlock failedBlock:(void(^)(NSError *error))failedBlock;
@end
#pragma mark - 收银台代理方法
@protocol BDNCashierSDKDelegate <NSObject>
/**
* 预留协议,便于后期扩展
*/
@end
#pragma mark - 支付服务协议(自行实现指定支付渠道的支付能力时使用)
@protocol BDNCashierSDKPaymentServiceProtocol <NSObject>
@required
/**
* @brief 设置支付能力的渠道标示
*
* @return 支付渠道
*/
- (BDNCashierPaymentChannel *)paymentChannel;
/**
* @brief 使用该支付渠道进行支付
*
* @param orderInfo 订单信息
* @param completion 回调block 内部返回的字典结构必须包含:@{ BDNCashierPaymentRespCodeKey: @(BDNCashierPaymentRespCode), BDNCashierPaymentRespMsgKey: @"描述信息" }
*/
- (void)doPay:(NSString *)orderInfo completion:(BDNCashierPaymentCallback)completion;
@optional
/**
* @brief 处理AppDelegate中的支付回调信息(通过URL回调)
*
* @param url 支付回调信息 从方法:`- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation`中取得的url
* @return 是否能被处理
*/
- (BOOL)handleOpenURL:(NSURL *)url;
/**
* @brief 处理AppDelegate中的支付回调信息(通过UniversalLink回调)
*
* @param userActivity 支付回调信息 从方法:`- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray *restorableObjects))restorationHandler`中取得的userActivity
* @return 是否能被处理
*/
- (BOOL)handleUniversalLink:(NSUserActivity *)userActivity;
/**
* @brief 调起该支付渠道免密签约
*
* @param params 签约所需参数
* @param completion 回调block 透传支付渠道返回的签约信息
*/
- (void)doSignNoScret:(NSDictionary *)params completion:(void (^)(NSDictionary *info, NSError *err))completion;
- (BOOL)isAppInstalled;
@end