Я просмотрел SO и Google и не нашел подобной проблемы в этом.Я чувствую, что ответ смотрит мне в лицо, и мне просто нужен еще один набор глаз.
Я использую AFNetworking для подключения к Stripe.com API.В частности, я использую AFHTTPClient postPath для отправки данных в конечную точку, сборы.Stripe требует, чтобы запрос был закодирован как application / x-www-form-urlencoded, поэтому я не могу использовать кодировку JSON.
Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть объект Charge и объект Card,Card - это свойство Charge, и я конвертирую Charge и Card в NSDictionary (Card - это словарь внутри словаря Charge), а затем передаю их в качестве параметров запроса следующим образом:
NSDictionary *parameters = [ChargeRequest convertToDictionary:request];
[[StripeAPIClient sharedClient] postPath:@"charges" parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSLog(@"Response: %@", responseObject);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", [error localizedDescription]);
NSLog(@"Response: %@", operation.responseString);
}];
КогдаЯ делаю это, когда для свойства parameterEncoding AFHttpClient установлено значение AFFormURLParameterEncoding, Stripe возвращает эту ошибку:
"error": {
"message": "Invalid token id: {\n \"exp_month\" = 10;\n \"exp_year\" = 2016;\n number = 4242111111111111;\n}",
"type": "invalid_request_error"
}
Значения в ошибке - это, в частности, ключ / значения объекта Card после преобразования.Вот код, который я использую для преобразования:
return [[NSDictionary alloc] initWithObjectsAndKeys:request.number, @"number", [NSNumber numberWithInt:10], @"exp_month", [NSNumber numberWithInt:2016], @"exp_year", nil];
Любой совет, что делать, чтобы избавиться от недействительных токенов, помещенных в этот NSDictionary?Я сосредоточен на неправильной вещи?
Спасибо!