2017-06-20 4 views
1

Neu bei iOS Entwicklung so bin ich ein wenig auf diesem Teil verwirrt von den Point of Sale sdkimplementieren Erklärung und UiApplication Delegierten

Nutzungs

Swift

Import Erklärung implementieren: import SquarePointOfSaleSDK

// Replace with your app's URL scheme. 
let yourCallbackURL = URL(string: "your-url-scheme://")! 

// Your client ID is the same as your Square Application ID. 
// Note: You only need to set your client ID once, before creating your first request. 
SCCAPIRequest.setClientID("YOUR_CLIENT_ID") 

do { 
    // Specify the amount of money to charge. 
    let money = try SCCMoney(amountCents: 100, currencyCode: "USD") 

    // Create the request. 
    let apiRequest = 
     try SCCAPIRequest(
      callbackURL: yourCallbackURL, 
      amount: money, 
      userInfoString: nil, 
      merchantID: nil, 
      notes: "Coffee", 
      customerID: nil, 
      supportedTenderTypes: .all, 
      clearsDefaultFees: false, 
      returnAutomaticallyAfterPayment: false 
     ) 

    // Open Point of Sale to complete the payment. 
    try SCCAPIConnection.perform(apiRequest) 

} catch let error as NSError { 
    print(error.localizedDescription) 
} 

Schließlich implementieren Sie die UIApplication-Delegate-Methode wie folgt:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 
    guard let sourceApplication = options[.sourceApplication] as? String, 
     sourceApplication.hasPrefix("com.squareup.square") else { 
     return false 
    } 

    do { 
     let response = try SCCAPIResponse(responseURL: url) 

     if let error = response.error { 
      // Handle a failed request. 
      print(error.localizedDescription) 
     } else { 
      // Handle a successful request. 
     } 

    } catch let error as NSError { 
     // Handle unexpected errors. 
     print(error.localizedDescription) 
    } 

    return true 
} 

Ich bin ein wenig verwirrt, wo ich diese jeweiligen Teile des Codes. Meine beste Vermutung ist, dass der UIApplication Delegate in AppDelegate.swift geht?

Antwort

0

Sie können die client ID in der appDidFinishLaunching Methode in AppDelegate einstellen, da es nur einmal festgelegt werden muss.

Der Code, der die API-Anfrage erstellt und ausführt, kann in jedem Ansichtscontroller verwendet werden, den Sie zum Initiieren der Zahlung verwenden möchten.

Sie haben Recht, die letzte Methode sollte zu Ihrer AppDelegate hinzugefügt werden.

Verwandte Themen