SDK 的主入口类,用于配置环境和发起支付流程。
切换 SDK 当前使用的环境配置和商户配置。
类型
+ (void)useEnv:(PayKKaEnv *)env; + (void)useConf:(PayKKaConf *)conf;PayKKa.useEnv(_ env: PayKKaEnv) PayKKa.useConf(_ conf: PayKKaConf)详细信息
useEnv:切换 SDK 当前使用的运行环境。useConf:切换 SDK 当前使用的商户配置。- 这两个方法只会更新当前全局配置,不会自动执行完整初始化流程。
- SDK 默认环境为
PayKKaEnv.SANDBOX;若未显式设置商户配置,则默认使用PayKKaConf.EMPTY。 - 通常建议在应用启动阶段,或拉起支付前统一设置。
示例
#import <PayKKaCheckoutPayments/PayKKa.h> [PayKKa useEnv:PayKKaEnv.SANDBOX]; [PayKKa useConf:appConf];PayKKa.useEnv(.SANDBOX) PayKKa.useConf(appConf)参考
初始化 SDK,并使环境配置与商户配置生效。
类型
+ (void)init:(PayKKaConf *)configuration environment:(nullable PayKKaEnv *)environment; + (void)init:(PayKKaConf *)configuration;PayKKa.Init(_ configuration: PayKKaConf, _ environment: PayKKaEnv?) PayKKa.Init(_ configuration: PayKKaConf)详细信息
configuration:商户配置对象,至少应包含网关商户号和客户端密钥。environment:可选的运行环境;为空时默认使用PayKKaEnv.SANDBOX。init内部会调用useEnv(...)和useConf(...),并完成 SDK 初始化。- 在调用
goPay(...)或 SwiftUI 收银台相关能力前,应先完成初始化;否则会抛出NSInternalInconsistencyException。 - Swift 暴露名为
PayKKa.Init(...),使用大写I。
示例
[PayKKa init:appConf environment:PayKKaEnv.SANDBOX]; // 或 [PayKKa init:appConf];PayKKa.Init(appConf, .SANDBOX) // 或 PayKKa.Init(appConf)
发起支付流程,展示收银台页面。
类型
+ (void)goPay:(NSString *)sessionId onPaymentCallback:(PayKKaCallback)onPaymentCallback; + (void)goPay:(NSString *)sessionId onPaymentCallback:(PayKKaCallback)onPaymentCallback onCloseTappedCallback:(void (^ _Nullable)(JSEvent *jsEvent))onCloseTappedCallback;详细信息 该方法会创建一个全屏的收银台视图控制器,并自动获取当前适合用于模态展示的顶部页面进行展示。支持处理支付结果回调以及可选的关闭按钮点击事件。
sessionId: 从后端获取的支付 Session ID。onPaymentCallback: 支付完成后的回调,返回PaymentResult对象。onCloseTappedCallback: 可选。当用户点击收银台左上角的关闭按钮时触发。
示例
[PayKKa goPay:@"your_session_id" onPaymentCallback:^(PaymentResult *result) { if (result.status == PaymentStatusSuccess) { NSLog(@"支付成功"); } else { NSLog(@"支付失败: %@", result.message); } }];
用于定义 SDK 连接的后端环境。
- 预置环境
PayKKaEnv.SANDBOX: 沙箱测试环境。PayKKaEnv.PROD_EU: 欧洲生产环境。PayKKaEnv.PROD_HK: 香港生产环境。
用于定义 SDK 使用的商户配置。
类型
@interface PayKKaConf : NSObject属性
EMPTY(PayKKaConf *): 内置空配置对象,默认包含空字符串的gatewayMerchantId和clientKey。configuration(NSDictionary *): 当前配置对象的原始字典。
使用字典初始化商户配置对象。
类型
- (instancetype)initWithDict:(NSDictionary *)dict;详细信息
- 建议至少传入以下字段:
KEY_GATEWAY_MERCHANT_IDKEY_CLIENT_KEY
- 建议至少传入以下字段:
包含支付结果详细信息的对象。
- 属性
status(PaymentStatus): 支付状态。message(NSString *): 相关的提示或错误信息。result(NSDictionary *): 原始支付数据。
支付状态枚举:
PaymentStatusSuccess: 支付成功。PaymentStatusExpired: 支付会话已过期。PaymentStatusError: 支付过程中发生错误。PaymentStatusUnknown: 未知状态。
将支付结果序列化为 JSON 字符串。
- 类型
- (NSString *)toString;