Juspay Kit 是一个 Swift 包,旨在简化与 Juspay 支付处理 API 的集成。
⚠️ 注意:此库正在积极开发中,功能可能会发生变化。 欢迎提供反馈、错误报告和贡献!
在您的 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 文件。