2017-02-27 12 views
1

PayPalSDKを使用して私が開発しているアプリにPayPalの支払い方法を追加しています。既に動作しています。支払いが成功すると、私はjsonObjectに変換していますが、レスポンスからコードを抽出するために解析します。これは私がSwiftyJSONを使用してAnyHashable値でこのPayPal JSON応答を解析する方法は?

JSON: [AnyHashable("response"): { 
code = "******************* -****************-**********************"; 
}, AnyHashable("response_type"): authorization_code, AnyHashable("client"): { 
environment = sandbox; 
"paypal_sdk_version" = "2.11.5"; 
platform = iOS; 
"product_name" = "PayPal iOS SDK"; 
}] 

を得ている応答であり、これは私が私のpayPalFuturePaymentViewController法に持っているものです。

func payPalFuturePaymentViewController(_ futurePaymentViewController: PayPalFuturePaymentViewController, didAuthorizeFuturePayment futurePaymentAuthorization: [AnyHashable: Any]) { 
    print("PayPal Future Payment Authorization Success!") 
    self.resultText = futurePaymentAuthorization.description 
    let jsonObject = JSON(futurePaymentAuthorization.description) 
    print("JSON: \(jsonObject)") 
    // send authorization to your server to get refresh token. 
    futurePaymentViewController.dismiss(animated: true, completion: {() -> Void in 

     var paypalPago = PagoItem(noTarjeta: "", fechaExp: "", cvc: "", token: "", tipo: "PayPal") 

     self.metodosPago.append(paypalPago) 
     self.saveMetodo() 

     let destViewController : UIViewController = self.storyboard!.instantiateViewController(withIdentifier: "pagosLlenos") 
     var vcArray = self.navigationController?.viewControllers 

     vcArray?.removeLast() 
     vcArray?.append(destViewController) 
     self.navigationController?.setViewControllers(vcArray!, animated: true) 
    }) 
} 

は、だから私はやりたい何応答からコードを取得することで、置きますその変数にして、paypalPago項目に変数ことを含める:このJSONを解析し、私は必要なコードを抽出する方法について

var paypalPago = PagoItem(noTarjeta: "", fechaExp: "", cvc: "", token: PayPalCode, tipo: "PayPal") 

すべてのヘルプははるかに高く評価されるだろう:)

答えて

1

は、実際の問題は、私は、文字列の記述ではない実際のJSONレスポンスを格納したので、私は

let jsonObject = JSON(futurePaymentAuthorization) 

let jsonObject = JSON(futurePaymentAuthorization.description) 

を変更しなければならなかったということでしたそれは非常に簡単でした

を解決しました

私の応答は次のようになります:

JSON: { 
"client" : { 
"environment" : "sandbox", 
"product_name" : "PayPal iOS SDK", 
"paypal_sdk_version" : "2.11.5", 
"platform" : "iOS" 
    }, 
"response_type" : "authorization_code", 
"response" : { 
"code" : "****************_*********_***********************" 
} 

そして今、私は、任意の通常のJSONのようにそれを解析することができます

let response = jsonObject["response"]["code"].string! 
    print(response) 

    // send authorization to your server to get refresh token. 
    futurePaymentViewController.dismiss(animated: true, completion: {() -> Void in 
     var paypalPago = PagoItem(noTarjeta: "", fechaExp: "", cvc: "", token: response, tipo: "PayPal") 
    self.metodosPago.append(paypalPago) 
関連する問題