Я использую Alamofire и Swift в своем приложении Heroku, используя Node.js (интегрирующий Stripe). Однако при создании идентификатора клиента я получаю следующую ошибку. Мои кодовые наборы ниже.
Дайте мне знать, если требуются какие-либо другие сведения.
Сообщение об ошибке:
Alamofire.AFError.responseSerializationFailed (Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)
Код клиента
func createCustomerKey(withAPIVersion apiVersion: String, completion: @escaping STPJSONResponseCompletionBlock) {
let customerIDURL = self.baseURL.appendingPathComponent("customer")
let customerIDParameters = ["email":(Auth.auth().currentUser?.email)!]
Alamofire.request(customerIDURL, method: .post, parameters: customerIDParameters, encoding: JSONEncoding.default).validate(statusCode: 200..<300).responseJSON { responseJSON in
switch responseJSON.result {
case .success(let json):
completion(json as? [String:AnyObject], nil)
print("\(json)\n\n\n\n")
case .failure(let error):
completion(nil, error)
print("Error message:\(responseJSON.result.error)")
break
}
}
Серверный код
const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000
var app = express();
var stripe = require('stripe')('secret_key')
var bodyParser = require('body-parser')
app.set('port', (process.env.PORT || 5000));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(express.static(path.join(__dirname, 'public')));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.listen(PORT, () => console.log(`Listening on ${ PORT }`));
app.post('/customer', (req, res) => {
var email = req.body.email;
stripe.customers.create({
email: email
}, function(err) {
if (err) {
console.log(err, req.body)
res.status(500).end()
} else {
res.status(200).send()
}
}