Я пытаюсь создать приложение, которое использует Stripe и Alamofire для обработки платежей. У меня он работал в один момент, потом он просто перестал работать, но я не уверен, было ли это из-за обновления или ошибки. Я также использую Heroku для запуска файла бэкэнда Nodejs, и я не получаю никаких ошибок на стороне сервера, и в Stripe проходят тестовые платежи. Это похоже на то, как будто Heroku не отправляет правильный тип файла обратно в мое приложение.
Я получаю эту ошибку.
===========Error===========
Error Code: 10
Error Messsage: Response could not be serialized, input data was nil or zero length.
Alamofire.AFError.responseSerializationFailed(reason: Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)
===========================
код:
import Foundation
import Stripe
import Alamofire
class StripeClient {
static let sharedClient = StripeClient()
var baseURLString: String? = nil
var baseURL: URL{
if let urlString = self.baseURLString, let url = URL(string: urlString) {
print(url)
return url
} else {
fatalError()
}
}
func createAndConfirmPayment(_ token: STPToken, amount: Int, completion: @escaping (_ error: Error?) -> Void) {
let url = self.baseURL.appendingPathComponent("charge")
print(url)
let params: [String : Any] = ["stripeToken" : token.tokenId, "amount" : amount, "description" : Constats.defaultDescription, "currency" : Constats.defaultCurrency]
AF.request(url, method: .post, parameters: params)
.validate(statusCode: 200..<300)
.responseData(completionHandler: { (response) in
print(response)
switch response.result {
case .success( _):
print("Payment successful")
completion(nil)
case .failure(let error):
if (response.data?.count)! > 0 {print(error)}
print("\n\n===========Error===========")
print("Error Code: \(error._code)")
print("Error Messsage: \(error.localizedDescription)")
if let data = response.data, let str = String(data: data, encoding: String.Encoding.utf8){
print("Server Error: " + str)
}
debugPrint(error as Any)
print("===========================\n\n")
print("error processing the payment", error.localizedDescription)
completion(error)
}
})
}
}
I Я использую Stripe 18.4, Alamofire 5.0, Xcode 11.3 и Swift 5 Спасибо!