# Getting Started with the TTC Pay for iOS

# Install

The TTC TReE SDK can be installed by using CocoaPods.

#Open use_frameworks!
use_frameworks!

pod 'TTCPay'

Note: For Object-C projects, please select the swift version 4.1+.

# Add the URL Scheme

Follow the followng naming guideline for the URL Scheme.

"TTC-" + APP Bundle identifier e.g : TTC-com.tataufo.TTC-SDK-iOS-Demo

# Initiate

This method is called when the DAPP starts.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        window = UIWindow(frame: UIScreen.main.bounds)
        window!.rootViewController = ViewController()
        window!.makeKeyAndVisible()

        TTCPay.shared.appId = "appid"
        TTCPay.shared.secretKey = "secretKey"

        return true
    }

# Create order

Build a TTCCreateOrder object in advance, use the background server signature, and successfully return the order number.

TTCPay.shared.createOrderAndPay(createOrder: createOrder) { (success, orderResult, error) in
    if success, orderResult != nil {
        print("create success : \(orderResult!.orderId.description)")
    } else {
        print("create failed:%@", error?.errorDescription ?? "")
    }
}

# Query exchange rate

1-CNY 2- USD 3-KRW 4-VND, the incoming parameters correspond to different currency exchange rates

TTCPay.shared.fetchPrice(currencyType: 2) { (success, price, error) in
   if success {
       self.TTCPrice = Double(price!) ?? 0
   }
}

# Query order information

Incoming order number returns a TTCOrder object containing the order information.

TTCPay.shared.fetchOrder(orderId: orderID) { [weak self] (success, data, error) in
    if success, let fetOrder = data {
        print(fetOrder.txHash)
    }
}

# Payment callback processing

The wallet payment success will call back sdk, add the following code to process the callback, process the success and go back to the query order and call back the order information in the place where TTCPay.shared.payBack is implemented.

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
  return TTCPay.receivePayCallBack(url: url)
}

TTCPay.shared.payBack = { success, order, error in
    if success, order != nil, !order!.txHash.isEmpty {
        print("txhash: ",order?.txHash ?? "txhash")

    } else {
        print(error?.errorDescription ?? "error")
    }
}