The main entry point for the SDK, used for environment configuration and initiating the payment process.
Switch the environment configuration used by the SDK.
Type
+ (void)useEnv:(PayKKaEnv *)env;Details Before calling the payment API, you can set the SDK's operating environment using this method. The SDK defaults to the production environment. It is generally recommended to configure this at app startup (e.g., in
AppDelegate).Example
#import <PayKKaCheckoutPayments/PayKKa.h> // Set to sandbox environment [PayKKa useEnv:PayKKaEnv.SANDBOX];Reference PayKKaEnv
Initiate the payment process and display the checkout page.
Type
+ (void)goPay:(UIViewController *)from sessionId:(NSString *)sessionId onPaymentCallback:(PayKKaCallback)onPaymentCallback; + (void)goPay:(UIViewController *)from sessionId:(NSString *)sessionId onPaymentCallback:(PayKKaCallback)onPaymentCallback onCloseTappedCallback:(void (^ _Nullable)(JSEvent *jsEvent))onCloseTappedCallback;Details This method creates a full-screen checkout view controller and presents it on top of the provided view controller. It supports handling payment result callbacks and optional close button tap events.
from: The view controller currently being displayed.sessionId: The payment Session ID retrieved from the backend.onPaymentCallback: Callback after payment completion, returning aPaymentResultobject.onCloseTappedCallback: Optional. Triggered when the user taps the close button in the top-left corner of the checkout.
Example
[PayKKa goPay:self sessionId:@"your_session_id" onPaymentCallback:^(PaymentResult *result) { if (result.status == PaymentStatusSuccess) { NSLog(@"Payment successful"); } else { NSLog(@"Payment failed: %@", result.message); } }];
A checkout component for SwiftUI that wraps the native WKWebView.
Initialize the checkout WebView component.
Type
public init( sessionId: String, isPresented: Binding<Bool>, onPaymentCallback: ((PaymentResult) -> Void)?, onCloseTappedCallback: ((JSEvent) -> Void)? = nil )Details This component automatically generates the corresponding payment URL based on
PayKKa.currentEnv. When the payment is complete or the user manually closes the checkout, the component setsisPresentedtofalseto dismiss the view.sessionId: The Session ID created in the PayKKa backend.isPresented: A binding value to control the presentation state of the checkout.onPaymentCallback: Callback after payment completion.onCloseTappedCallback: Callback when the user taps the close button.
Example
struct CheckoutView: View { @State private var showPayment = false var body: some View { Button("Go to Pay") { showPayment = true } .sheet(isPresented: $showPayment) { PayKKaPaymentWKWebView( sessionId: "session_123", isPresented: $showPayment, onPaymentCallback: { result in print("Payment result: \(result.status)") } ) } } }
Convenient extension methods provided by PayKKa for SwiftUI View.
Quickly present the payment checkout as a sheet.
Type
func paykkaPaymentWKWebViewSheet( isPresented: Binding<Bool>, sessionId: String, onPaymentResultCallback: ((PaymentResult) -> Void)?, onCloseTappedCallback: ((JSEvent) -> Void)? = nil ) -> some ViewDetails This is a convenient wrapper around
.sheetandPayKKaPaymentWKWebView, with interactive dismiss disabled by default (interactiveDismissDisabled(true)) to ensure the integrity of the payment process.Example
ContentView() .paykkaPaymentWKWebViewSheet( isPresented: $isPresented, sessionId: sessionId, onPaymentResultCallback: { result in // Process result } )
Defines the backend environments the SDK connects to.
- Preset Environments
PayKKaEnv.SANDBOX: Sandbox test environment.PayKKaEnv.PROD_EU: European production environment.PayKKaEnv.PROD_HK: Hong Kong production environment.
Initialize the environment with a custom URL format (typically used for internal debugging).
Type
- (instancetype)initWithFormat:(NSString *)format;Details If you need to connect to a custom test server, you can use this method. The URL format should include the
{sessionId}placeholder.
An object containing detailed information about the payment result.
- Properties
status(PaymentStatus): Payment status.message(NSString *): Relevant tips or error messages.result(NSDictionary *): Raw payment data.
Payment status enum:
PaymentStatusSuccess: Payment successful.PaymentStatusExpired: Payment session expired.PaymentStatusError: An error occurred during payment.PaymentStatusUnknown: Unknown status.
Serialize the payment result into a JSON string.
- Type
- (NSString *)toString;