TamaraSDK 1.0.14

TamaraSDK 1.0.14

维护者: Thanh PhamHaiVuTechToolKeuahnCuong_Huynh



TamaraSDK 1.0.14

  • Tamara

IOS SDK

该项目包括 2 个模块

  • SDK 模块:配置 Tamara SDK
  • 示例应用:使用 Tamara SDK 进行支付的简单在线购物应用

使用方法

SDK 提供以下功能

  • WebKit WebView 处理器,用于在您的应用程序中显示 Tamara 结账页面。
  • Tamara "了解更多" 视图。您可以使用它轻松显示关于 Tamara 的简短描述。

这是在您的应用程序中使用 tamara 的基本工作流程

Checkout flow

假设您已调用我们的结账 API,并获得了 checkout_url,让我们快速编写一些代码来完成任务。

1. 初始化结账数据

如 API 文档中所述(《[https://docs.tamara.co/#tag/Checkout/paths/~1checkout/post](https://docs.tamara.co/#tag/Checkout/paths/~1checkout/post)》),您需要提供一些用于结账流程的 URL。对于移动应用程序,您还需要声明 successfailure URL,它们与您的后端发送给我们的 API 的 URL 完全相同,因此 SDK 中的 WebView 可以检测结账是否成功或有误。

let merchantUrl = TamaraMerchantURL(
    success: "tamara://checkout/success",
    failure: "tamara://checkout/failure",
    cancel: "tamara://checkout/cancel",
    notification: "tamara://checkout/notification"
)

然后初始化结账视图的模型。参数是您从后端接收到的 checkoutUrl,和上面创建的 merchantUrl

let viewModel = TamaraSDKCheckoutViewModel(url: checkoutURL, merchantURL: merchantUrl)

注意:如果您想从 iOS 客户端创建订单,而不是通过您自己的后端,那么您可能对以下文档感兴趣:《[创建使用 iOS 客户端的订单](/ORDER.md)》。

2. 创建webview并处理回调(成功/失败)

1. 在SwiftUI中

SDKViewController(url: appState.viewModel.url,
                  merchantUrl: appState.viewModel.merchantURL,
                  delegate: SDKViewController.Delegate (
                    success: {
                        //Handle Success
                        appState.orderSuccessed = true
                        appState.currentPage = .Success
                    }, failure: {
                        //Handle Failed
                        appState.orderSuccessed = false
                        appState.currentPage = .Success
                    }, cancel: {
                        //Handle Cancel
                        appState.currentPage = .Info
                    }, notification: {
                        //Handle Notification
                    })
)

2. 在UIKit中

private var tamaraSDK: TamaraSDKCheckout!
self.tamaraSDK = TamaraSDKCheckout(url: item.checkoutUrl, merchantURL: merchantUrl, webView: nil)
self.tamaraSDK.delegate = self
self.present(self.tamaraSDK, animated: true, completion: nil)

代理处理

//Delegate handle action
extension UIKitSDKViewController: TamaraCheckoutDelegate {
    func onSuccessfull() {
    sdkView.dismiss(animated: true) {
            //success handle
        }
    }
    
    func onFailured() {
        tamaraSDK.dismiss(animated: true) {
            //error handle
        }
    }
    
    func onCancel() {
        tamaraSDK.dismiss(animated: true) {
            //cancel handle
        }
    }
    
    func onNotification() {
        tamaraSDK.dismiss(animated: true) {
            //notification handle
        }
    }
}

3. 添加“关于Tamara”模态视图

为了让客户了解什么是 tamara 以及其工作原理,我们还提供此模态视图,以便您可以在应用程序中的任何位置、任何时候显示它。

let vc = TamaraLearnMorePopup()
self.present(vc, animated: true, completion: nil)