Създайте поръчка за електронна търговия 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
Благодаря за отговора ви... можете ли да погледнете моите параметри, тъй като мисля, че не са правилни.. тук изпращам два параметъра... т.е. ключ =› стойност (order[line_items][0][variant_id] = › 12345 и поръчка[line_items][0][количество] =› 1)...коректни ли са или не? - person Himanshu Mohan; 12.07.2012
comment
чакам отговор .pls помощ - person Himanshu Mohan; 12.07.2012
comment
Публикувахте, чакайки отговор един час след първия си коментар. Малко е грубо да очакваш друг отговор веднага. Аз не съм ваш личен роб. - person Ryan Bigg; 13.07.2012
comment
В отговор на въпроса ви: Не знам как сървърът получава тези параметри, така че не знам дали е правилно или не. Покажете ми регистрационните файлове на Rails за заявката и мога да ви кажа. - person Ryan Bigg; 13.07.2012