В своем коде Swift я делаю URLRequest
для моего сервера node.js:
URLSession.shared.dataTask(with: checkoutRequest, completionHandler: {
[weak self] (data: Data?, response: URLResponse?, error: Error?) in
guard let data = data,
let dataString = String(data: data, encoding: String.Encoding.utf8) else {
return
}
// Help me!!!
}).resume()
node.js обрабатывает этот запрос, обрабатывая транзакцию через API проверки платежей Braintree.
checkoutProcessor.processCheckout(amount, nonce, (error, result) => {
// Checkout callback
if (error) {
res.write(error.message)
res.end()
} else if (result) {
console.log(result)
res.write(JSON.stringify(result))
res.end()
}
})
Как обычно, если запрос API терпит неудачу (например, нет сигнала), он возвращает error
, но если транзакция проходит , она возвращает result
.
Тип result
, однако, зависит от того, будет ли финансовая транзакция 1016 * неудачной или успешной:
Например, result
для успешной транзакции:
Object {transaction: Transaction, success: true}
result
для неудачной транзакции:
ErrorResponse {errors: ValidationErrorsCollection, params: Object, message: "Insufficient Funds", transaction: Transaction, success: false}
dataString
выглядит так:
{\ "транзакция \": {\"идентификатор \": \ "m7mj3qd7 \", \ "статус \": суммы \ "USD \", \ ": \ "submitted_for_settlement \", \ "типа \": \ "продажа \", \ "currencyIsoCode \"\ ": \" 12,34 \», \ "merchantAccountId \": \ "yourpianobar \", \ "subMerchantAccountId \": нулевой, \ "masterMerchantAccountId \": нулевой, \ "OrderId \": нулевой, \ "createdAt \": \ "2018-09-19T03: 30: 27Z \", \ "updatedAt \": \ "2018-09-19T03: 30: 27Z \", \ "клиент \": {\ "идентификатор \": \»622865439 \ ", \" firstName \ ": \" Test \ ", \" lastName \ ": \" FromSwiftTest \ "
, который, безусловно, напоминает объект JSON, но я не могу его декодировать с помощью JSONDecoder
, это не удается.(JSONEncoder
также не работает)
Большинство решений, которые я вижу для Object
, если преобразование строковых данных JSON в Swift включает в себя запись swift struct
, с помощью которого можно отобразить все свойства объекта JSON, но поскольку это структура данныхрезультат неизвестен на быстром конце, я не знаю, что делать.
Как мне вставить эти объекты в мой быстрый код?
Примечание: я также пытался просто отправить res.send(result)
в коде node.js, но это ничего не меняет.