Gr4vy iOS SDK
快速将 Gr4vy 嵌入您的 iOS 应用,以存储卡详情、授权支付和捕获交易。
安装
gr4vy-ios 不包含任何外部依赖项。
最低部署级别
注意:此 SDK 所需的最低部署级别为
14.0
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理器。有关使用和安装说明,请访问他们的网站。要使用 CocoaPods 将 gr4vy-ios 集成到您的 Xcode 项目中,请在 Podfile
中指定它
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'gr4vy-ios', '1.6.2'
end
替换 YOUR_TARGET_NAME
然后,在 Podfile
目录中键入
$ pod install
或者对于 M1 Mac
$ arch -x86_64 pod install
开始使用
要使用 Gr4vy Embed,导入库并调用 .launch()
方法。
import gr4vy_ios
UIKit
let gr4vy = Gr4vy(gr4vyId: "[GR4VY_ID]",
token: "[TOKEN]",
amount: 1299,
currency: "USD",
country: "US",
applePayMerchantId: "[APPLE_PAY_MERCHANTID]" // Optional, ensure this is added to enable Apple Pay
)
gr4vy?.launch(
presentingViewController: self,
onEvent: { event in
switch event {
case .transactionFailed(let transactionID, let status, let paymentMethodID):
print("Handle transactionFailed here, ID: \(transactionID), Status: \(status), PaymentMethodID: \(paymentMethodID ?? "Unknown")")
return
case .transactionCreated(let transactionID, let status, let paymentMethodID):
print("Handle transactionCreated here, ID: \(transactionID), Status: \(status), PaymentMethodID: \(paymentMethodID ?? "Unknown")")
return
case .generalError(let error):
print("Error: \(error.description)")
return
}
})
SwiftUI
let gr4vy = Gr4vy(gr4vyId: "[GR4VY_ID]",
token: "[TOKEN]",
amount: 1299,
currency: "USD",
country: "USD",
applePayMerchantId: "[APPLE_PAY_MERCHANTID]" // Optional, ensure this is added to enable Apple Pay
onEvent: { event in
switch event {
case .transactionFailed(let transactionID, let status, let paymentMethodID):
print("Handle transactionFailed here, ID: \(transactionID), Status: \(status), PaymentMethodID: \(paymentMethodID ?? "Unknown")")
return
case .transactionCreated(let transactionID, let status, let paymentMethodID):
print("Handle transactionCreated here, ID: \(transactionID), Status: \(status), PaymentMethodID: \(paymentMethodID ?? "Unknown")")
return
case .generalError(let error):
print("Error: \(error.description)")
return
}
})
// Then whenever the view is needed:
gr4vy?.view()
注意:将
"[GR4VY_ID]"
替换为您实例的 ID。将"[TOKEN]"
替换为您的 JWT 访问令牌(有关更多详细信息,请参阅我们的任何 服务器端 SDK)。将"[APPLE_PAY_MERCHANTID]"
替换为用于您要使用的捆绑 ID 的商户 ID。presentingViewController
是启动此 SDK 的当前视图控制器。gr4vy-ios 在当前视图控制器上显示,通过onEvent
回调传递事件。
选项
这是 launch
方法上可用的参数
字段 | 可选 / 必需 | 描述 |
---|---|---|
gr4vyId |
必需 |
Gr4vy ID 自动将 apiHost 设置为生产环境的 api.<gr4vyId>.gr4vy.app 以及沙盒环境的 api.sandbox.<gr4vyId>.gr4vy.app 和 embed.sandbox.<gr4vyId>.gr4vy.app 。 |
token |
必需 |
用于验证 API 调用的服务器端生成的 JWT 令牌。 |
amount |
必需 |
在指定的 currency 中仅授权或捕获的金额。 |
currency |
必需 |
有效的、活动的 3 个字符 ISO 4217 货币代码,用于为 amount 授权或捕获。 |
country |
必需 |
有效的 ISO 3166 国家代码。 |
buyerId |
可选 |
Gr4vy买家的可选 ID。交易将自动与具有该 ID 的买家关联。如果不存在具有此 ID 的买家,则将忽略它。 |
presentingViewController |
必需 |
呈现 Gr4vy 流的视图控制器。 |
externalIdentifier |
可选 |
可以提供的可选外部标识符。此标识符将自动与 Gr4vy 创建的任何资源关联,并且随后可以使用该 ID 来查找资源。 |
store |
可选 |
'ask' 、true 、false - 明确存储支付方法或询问买家,这在提供 buyerId 时使用。 |
display |
可选 |
all 、addOnly 、storedOnly 、supportsTokenization - 对支付方法进行筛选,只显示存储的方法、仅显示新支付方法或支持令牌化的方法。 |
intent |
可选 |
authorize 、capture - 定义此 API 调用的意图。这确定交易的预期初始状态。 |
metadata |
可选 |
可选的交易元数据键值字典。所有值应为字符串。 |
paymentSource |
可选 |
installment ,recurring - 可用于表示使用 Embed 捕获订阅或分期付款的第一个交易。使用时,store 默认为 true ,display 默认为 supportsTokenization 。这意味着不支持令牌化的支付选项将自动隐藏。 |
cartItems |
可选 |
可选的购物车项对象数组,每个对象必须定义 name 、quantity 和 unitAmount 。 |
environment |
可选 |
.sandbox ,.production 。默认为 .production 。当提供 .sandbox 时,URL 将包含 sandbox.GR4VY_ID 。 |
applePayMerchantId |
可选 |
在 Apple Pay 交易中使用的 Apple 商户 ID。 |
theme |
可选 |
主题定制选项。请参阅主题定制。iOS SDK 中的 colors 对象也包含两个额外的属性;headerBackground 和 headerText 。它们用于导航背景和前景颜色。 |
buyerExternalIdentifier |
可选 |
可选的 Gr4vy 买家的外部 ID。交易将自动与具有该外部 ID 的买家关联。如果不存在具有此外部 ID 的买家,则将其忽略。如果提供了 buyerId ,则忽略此选项。 |
locale |
可选 |
可选的区域设置,包括一个 ISO 639 语言代码 ,后跟一个可选的 ISO 3166 国家代码 ,例如 en 、en-gb 或 pt-br 。 |
statementDescriptor |
可选 |
一个可选的用于构建买家在银行对账单中看到的购买信息的对象。请注意,这些字段的受支持程度因支付服务提供商和基础银行而异,因此 Gr4vy 可以为每个受支持的平台确保尽力而为的方法。例如,大多数平台将仅支持 name 和 description 字段的连接,这在 embed 中被截断为 22 个字符的长度。对象可以包含 name 、description 、phoneNumber 、city 和 url 属性,值为字符串。phoneNumber 应采用 E164 格式。Gr4vy 建议避免使用超出英文字符范围以外的字符和点 (. ),以确保广泛的兼容性。 |
requireSecurityCode |
可选 |
一个可选的布尔值,强制要求在存储的卡支付时请求安全代码。 |
shippingDetailsId |
可选 |
为买家存储的购物详细信息集的可选唯一标识符。 |
merchantAccountId |
可选 |
可选的商户账户 ID。 |
debugMode |
可选 |
true ,false 。默认为 false ,这将在控制台打印。 |
onEvent |
可选 |
请参阅以下详细信息。 |
OnEvent
可以使用 onEvent
选项来监听 SDK 发射的某些事件。
onEvent: { event in
switch event {
case .transactionFailed(let transactionID, let status, let paymentMethodID):
print("Handle transactionFailed here, ID: \(transactionID), Status: \(status), PaymentMethodID: \(paymentMethodID ?? "Unknown")")
return
case .transactionCreated(let transactionID, let status, let paymentMethodID):
print("Handle transactionCreated here, ID: \(transactionID), Status: \(status), PaymentMethodID: \(paymentMethodID ?? "Unknown")")
return
case .generalError(let error):
print("Error: \(error.description)")
return
case .cancelled:
print("User cancelled")
return
}
gr4vy-ios 发射以下事件
transactionCreated
当交易成功创建时返回交易对象的数据。
{
"transactionID": "8724fd24-5489-4a5d-90fd-0604df7d3b83",
"status": "pending",
"paymentMethodID": "17d57b9a-408d-49b8-9a97-9db382593003"
}
transactionFailed
当交易遇到错误时返回。
{
"transactionID": "8724fd24-5489-4a5d-90fd-0604df7d3b83",
"status": "pending",
"paymentMethodID": "17d57b9a-408d-49b8-9a97-9db382593003"
}
generalError
当 SDK 遇到错误时返回。
{
"Gr4vy Error: Failed to load"
}
cancelled
当用户取消 SDK 时返回。
Apple Pay
要在您的 iOS 项目中启用 Apple Pay,您需要在 Gr4vy.init()
调用中传递配置的 applePayMerchantId
。此外,您需要在 Signing & Capabilities
Xcode 项目设置中启用 Apple Pay,并设置 Apple Pay Merchant IDs
(注意:确保您的配置文件和签名证书已更新以包含此有效的 Apple 商户 ID)。SDK 将执行各种检查以确保设备支持 Apple Pay,并且如果设备和商户 ID 都有效,则启用 Apple Pay。
许可
此项目根据 MIT 许可证 提供。