Я интегрирую Stripe в свое приложение для райдшеринга, и мне было интересно, можно ли отобразить баланс учетной записи Connect пользователю в Swift?
У Stripe есть возможность получить stripe.balance.retrieve({}), но он показывает баланс в консоли.
Можно ли передать это значение во внешний интерфейс в Swift с помощью запроса GET и сохранить значение в UITextLabel?
Я пробовал что-то с этим запросом GET, но я могу получить его только для отображения в консоли Swift?
func readBalance(userID: String)
{
var viewProfileComponents = URLComponents(string: "http://myWebsite/payment/payout")!
viewProfileComponents.queryItems = [
URLQueryItem(name: "userID", value: userID)
]
var request = URLRequest(url: viewProfileComponents.url!) // Pass Parameter in URL
print (viewProfileComponents.url!)
request.httpMethod = "GET" // GET METHOD
URLSession.shared.dataTask(with: request) { (data, response, error) -> Void in
if (error != nil){ // error handling responses.
print (error as Any)
}
else if let data = data {
print(data)
let userInfoString:NSString = NSString(data: data, encoding: String.Encoding.utf8.rawValue)!
if let data = userInfoString.data(using: String.Encoding.utf8.rawValue) {
do {
let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String:AnyObject]
print (json as Any)
if let userInfo = json!["data"]
{
DispatchQueue.main.async {
self.balanceAmount.text? = (userInfo["balance"] as! String)
}
}
} catch let error as NSError {
print(error)
}
}
}
}.resume()
}
Где balanceAmount - мой UITextLabel
Получить запрос
router.get("/payout", function (req, res) {
var userID = req.query.userID;
console.info('get payout body ', req.body);
db.query(`select \"Users\".\"stripeAccountID\", \"Users\".\"balance\" from database.\"Users\" where \"Users\".\"userID\" ='${userID}'`)
.then(function(data) {
const accBalance = stripe.balance.retrieve({
stripe_account: data.stripeAccountID
}).then(db.any(`UPDATE database.\"Users\" set \"Users\".\"balance\" = '${accBalance}' where \"Users\".\"userID\" ='${userID}'`));
console.info(data.balance)
console.info('data: ', data)
res.status(200).json({
status: 'Success',
data: data,
message: 'Retrieved Account Balance.'
});
})
.catch(function(error){
console.info('Error fetching payout', error);
});
})
Я знаю, что ответ Xcode GET не совпадает, balance в Xcode захватывается из значения базы данных.
Если есть какая-либо другая информация, которая может помочь, дайте мне знать.
Заранее спасибо!
@wsw Я только что добавил ответы консоли как от Node, так и от Swift. Пожалуйста, дайте мне знать, если это то, что вы ищете





Просто любопытно, какова форма вашего ответа JSON? не возражаете ли вы вставить образец из вызова на стороне сервера?