Падает приложение при попытке отправить токен на сервер

Рейтинг: 0Ответов: 1Опубликовано: 10.06.2023

Есть приложение написанное на SwiftUI. Пытаюсь интегрировать в него прием платежей. Использую Юкассу. При попытке передать токен на сервер приложение падает с такой ошибкой Thread 1: "Invalid type in JSON write (__SwiftValue)" Вот код:

let url = URL(string: "https://3a781a9d7b35.hosting.myjino.ru/index.php")!

var request = URLRequest(url: url)

request.httpMethod = "POST"

request.addValue("application/json", forHTTPHeaderField: "Content-Type")

let parameters: [String: Any] = [

    "token": token,

    "amount": 10,

    "currency": "RUB",

    "description": "Описание платежа"

]

do {

    request.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)

} catch let error {

    print(error.localizedDescription)

}

let task = URLSession.shared.dataTask(with: request) { data, response, error in

    guard let data = data, error == nil else {

        print(error?.localizedDescription ?? "No data")

        return

    }

    let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])

    if let responseJSON = responseJSON as? [String: Any] {

        print(responseJSON)

    }

}

task.resume()

Помогите исправить ошибку.

Ответы

▲ 0

Я решил эту проблему. Просто параметры передачи были не верные. Я их изменил и все получилось. Вот здесь:

let parameters: [String: Any] = [

    "token": "\(token)",

    "amount": 10,

    "currency": "RUB",

    "description": "Описание платежа"

]