gr4vy-ios 2.3.0

gr4vy-ios 2.3.0

iOS 维护。



gr4vy-ios 2.3.0

  • 作者
  • Gr4vy

Gr4vy iOS SDK

Build Status

Swift Platforms CocoaPods Compatible

快速将 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.appembed.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'truefalse - 明确存储支付方法或询问买家,这在提供 buyerId 时使用。
display 可选 alladdOnlystoredOnlysupportsTokenization - 对支付方法进行筛选,只显示存储的方法、仅显示新支付方法或支持令牌化的方法。
intent 可选 authorizecapture - 定义此 API 调用的意图。这确定交易的预期初始状态。
metadata 可选 可选的交易元数据键值字典。所有值应为字符串。
paymentSource 可选 installmentrecurring - 可用于表示使用 Embed 捕获订阅或分期付款的第一个交易。使用时,store 默认为 truedisplay 默认为 supportsTokenization。这意味着不支持令牌化的支付选项将自动隐藏。
cartItems 可选 可选的购物车项对象数组,每个对象必须定义 namequantityunitAmount
environment 可选 .sandbox.production。默认为 .production。当提供 .sandbox 时,URL 将包含 sandbox.GR4VY_ID
applePayMerchantId 可选 在 Apple Pay 交易中使用的 Apple 商户 ID。
theme 可选 主题定制选项。请参阅主题定制。iOS SDK 中的 colors 对象也包含两个额外的属性;headerBackgroundheaderText。它们用于导航背景和前景颜色。
buyerExternalIdentifier 可选 可选的 Gr4vy 买家的外部 ID。交易将自动与具有该外部 ID 的买家关联。如果不存在具有此外部 ID 的买家,则将其忽略。如果提供了 buyerId,则忽略此选项。
locale 可选 可选的区域设置,包括一个 ISO 639 语言代码,后跟一个可选的 ISO 3166 国家代码,例如 enen-gbpt-br
statementDescriptor 可选 一个可选的用于构建买家在银行对账单中看到的购买信息的对象。请注意,这些字段的受支持程度因支付服务提供商和基础银行而异,因此 Gr4vy 可以为每个受支持的平台确保尽力而为的方法。例如,大多数平台将仅支持 namedescription 字段的连接,这在 embed 中被截断为 22 个字符的长度。对象可以包含 namedescriptionphoneNumbercityurl 属性,值为字符串。phoneNumber 应采用 E164 格式。Gr4vy 建议避免使用超出英文字符范围以外的字符和点 (.),以确保广泛的兼容性。
requireSecurityCode 可选 一个可选的布尔值,强制要求在存储的卡支付时请求安全代码。
shippingDetailsId 可选 为买家存储的购物详细信息集的可选唯一标识符。
merchantAccountId 可选 可选的商户账户 ID。
debugMode 可选 truefalse。默认为 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 许可证 提供。