跳转到内容

SDK接口文档

PayKKa

SDK 的主入口类,用于配置环境和发起支付流程。

useEnv() / useConf()

切换 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)
  • 参考

init() / Init()

初始化 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)

goPay()

发起支付流程,展示收银台页面。

  • 类型

    + (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);
        }
      }];

环境配置 API

PayKKaEnv

用于定义 SDK 连接的后端环境。

  • 预置环境
    • PayKKaEnv.SANDBOX: 沙箱测试环境。
    • PayKKaEnv.PROD_EU: 欧洲生产环境。
    • PayKKaEnv.PROD_HK: 香港生产环境。

PayKKaConf

用于定义 SDK 使用的商户配置。

  • 类型

    @interface PayKKaConf : NSObject
  • 属性

    • EMPTY (PayKKaConf *): 内置空配置对象,默认包含空字符串的 gatewayMerchantIdclientKey
    • configuration (NSDictionary *): 当前配置对象的原始字典。

initWithDict()

使用字典初始化商户配置对象。

  • 类型

    - (instancetype)initWithDict:(NSDictionary *)dict;
  • 详细信息

    • 建议至少传入以下字段:
      • KEY_GATEWAY_MERCHANT_ID
      • KEY_CLIENT_KEY

数据模型

PaymentResult

包含支付结果详细信息的对象。

  • 属性
    • status (PaymentStatus): 支付状态。
    • message (NSString *): 相关的提示或错误信息。
    • result (NSDictionary *): 原始支付数据。

PaymentStatus

支付状态枚举:

  • PaymentStatusSuccess: 支付成功。
  • PaymentStatusExpired: 支付会话已过期。
  • PaymentStatusError: 支付过程中发生错误。
  • PaymentStatusUnknown: 未知状态。

toString()

将支付结果序列化为 JSON 字符串。

  • 类型
    - (NSString *)toString;