JuspayKit

Swift Versions Platforms

Juspay Kit 是一个 Swift 包,旨在简化与 Juspay 支付处理 API 的集成。

⚠️注意:此库正在积极开发中,功能可能会发生变化。 欢迎提供反馈、错误报告和贡献!

要求

安装

Swift Package Manager (SPM)

在您的 Package.swift 文件中添加 JuspayKit 作为依赖项

dependencies: [
    .package(url: "https://github.com/vamsii777/juspay-kit.git", .upToNextMajor(from: "0.1.7"))
]

然后将 JuspayKit 作为依赖项添加到您的目标 (target)

.product(name: "JuspayKit", package: "juspay-kit")

开始使用

客户端初始化

与 Juspay API 交互的主要入口点是 JuspayClient。 通过提供 HTTP 客户端、API 密钥、商户 ID 和环境设置来初始化客户端。

import JuspayKit

let client = JuspayClient(
    httpClient: HTTPClient.shared,
    apiKey: "your_api_key",
    merchantId: "your_merchant_id",
    environment: .sandbox // Use .production for live environment
)

创建支付会话

要创建支付会话,请准备一个包含订单和客户详细信息的 Session 对象。

let session = Session(
    orderId: "O123456789",
    amount: "100.00",
    customerId: "CUST123",
    customerEmail: "customer@example.com",
    customerPhone: "1234567890",
    paymentPageClientId: "your_merchant_id",
    action: .paymentPage,
    returnUrl: "https://your-return-url.com"
)

do {
    let response = try await client.sessions.create(session: session)
    print("Session created with ID: \(response.id)")
} catch {
    print("Error creating session: \(error)")
}

获取支付方式

通过调用 paymentMethods 对象上的 list() 方法来检索支持的支付方式列表。

do {
    let methods = try await client.paymentMethods.list(
        addEmandatePaymentMethods: true,
        checkWalletDirectDebitSupport: true,
        addSupportedReferenceIds: true,
        addTpvPaymentMethods: true,
        addOutage: true
    )
    print("Available payment methods: \(methods.paymentMethods)")
} catch {
    print("Error fetching payment methods: \(error)")
}

处理退款

要发起退款,请创建一个 RefundRequest 并调用 refunds 对象上的 create() 方法。

let refundRequest = RefundRequest(
    uniqueRequestId: RefundRequest.generateUniqueRequestID(),
    amount: 50.00
)

do {
    let refund = try await client.refunds.create(
        orderId: "ORDER123",
        refund: refundRequest
    )
    print("Refund processed: \(refund.status ?? "Unknown")")
} catch {
    print("Error processing refund: \(error)")
}

健康检查

执行健康检查以确保 Juspay API 的可用性。

do {
    let health = try await client.health.check()
    print("API Status: \(health.page.status)")
} catch {
    print("Error checking health: \(error)")
}

错误处理

JuspayKit 通过 JuspayError 类型提供强大的错误处理功能,其中包括详细的错误代码和消息。

do {
    let order = try await client.orders.retrieve(orderId: "ORDER123")
} catch let error as JuspayError {
    print("Error code: \(error.errorCode ?? "Unknown")")
    print("Error message: \(error.errorMessage ?? "No message")")
} catch {
    print("Unexpected error: \(error)")
}

文档

详细的 API 文档可以在 API 文档 中找到。

安全

有关安全相关问题,请参阅我们的 安全策略

贡献

欢迎随时贡献! 在提交拉取请求之前,请阅读我们的 贡献指南

许可证

JuspayKit 在 MIT 许可证下可用。 有关更多信息,请参阅 LICENSE 文件。