Создайте электронную коммерцию Order to Spree с помощью приложения для iOS

В моем приложении я хочу заказать продукт в электронной коммерции с помощью приложения для iPhone. Я легко получаю название продуктов и их детали, но при создании заказа на продукты он возвращает ошибку на странице html:

 <h1>
   TypeError
   in Spree::Api::V1::OrdersController#create
 </h1>
   <pre>can't convert Symbol into Integer</pre>

Я отправляю почтовый запрос как:

NSString *str = [NSString stringWithFormat:@"http://localhost:3000/api/orders"];
NSURL *urlForBuy = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:urlForBuy];
NSString *idVariant = [NSString stringWithFormat:@"order[line_items][%d][variant_id]",0];
NSString *qnty = [NSString stringWithFormat:@"order[line_items][%d][quantity]",0];
NSString *idVariantValue = @"123456";
[request setPostValue:[NSString stringWithFormat:@"%d",[idVariantValue intValue]] forKey:idVariant];
[request setPostValue:[NSString stringWithFormat:@"%d",1] forKey:qnty];
[request setPostValue:@"<my admin token>" forKey:@"token"];
[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(buyResponse:)];
[request setDidFailSelector:@selector(buyResponse_failed:)];
[networkQueue addOperation:request];
[networkQueue go];

Кроме того, этот URL-адрес я получаю из документации REST API Spree, а именно: http://guides.spreecommerce.com/rest.html

Еще одна вещь, которую я хочу знать, что такое [line_items] в этом URL-адресе ... Также, есть ли у них какой-либо учебник, кроме приведенного выше URL-адреса? ... Заранее спасибо.


person Himanshu Mohan    schedule 12.07.2012    source источник


Ответы (1)


Заказы создаются через API путем передачи позиций, как показано в этот тест.

api_post :create, :order => { 
  :line_items => [
    { 
      :variant_id => variant.to_param,
      :quantity => 5 
    }
  ]
}

Ожидается, что параметр line_items будет массивом хэшей, состоящим из полей variant_id и quantity. В документации говорится, что запрос выглядит следующим образом:

POST /api/orders?order[line_items][0][variant_id]=1&order[line_items[0][quantity]=5

Я надеюсь, что это поможет вам понять это лучше!

person Ryan Bigg    schedule 12.07.2012
comment
Спасибо за ваш ответ... не могли бы вы взглянуть на мои параметры, так как я думаю, что они неверны... здесь я отправляю два параметра... iekey => value (order[line_items][0][variant_id] = › 12345 и order[line_items][0][quantity] =› 1)... они подходят или нет? - person Himanshu Mohan; 12.07.2012
comment
жду ответа .пожалуйста помогите - person Himanshu Mohan; 12.07.2012
comment
Вы отправили сообщение об ожидании ответа через один час после вашего первого комментария. Немного грубо ожидать немедленно другого ответа. Я не твой личный раб. - person Ryan Bigg; 13.07.2012
comment
В ответ на ваш вопрос: я не знаю, как сервер получает эти параметры, поэтому я не знаю, правильно это или нет. Покажите мне журналы Rails для запроса, и я вам скажу. - person Ryan Bigg; 13.07.2012