2015-04-02 153 views
0

我試圖從我的iOS應用程序創建訂單到我的Shopify網站。Shopify創建訂單

這是文檔說我應該做的。

使用產品變體ID創建簡單訂單。 POST /admin/orders.json { "order": { "line_items": [ { "variant_id": 447654529, "quantity": 1 } ] } }

它不多說了。

這是我得到的。

<code> 
NSMutableDictionary *lineItem1=[[NSMutableDictionary alloc]init]; 
[lineItem1 setObject:@"1125533997" forKeyedSubscript:@"variant_id"]; 
[lineItem1 setObject:@"1" forKeyedSubscript:@"quantity"]; 

NSMutableArray *lineItems=[[NSMutableArray alloc]init]; 
[lineItems addObject:lineItem1]; 


NSMutableDictionary *orders=[[NSMutableDictionary alloc]init]; 
[orders setObject:lineItems forKeyedSubscript:@"line_items"]; 


NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:orders options:NSJSONWritingPrettyPrinted error:&error]; 

NSString *myString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 

myString=[JuicyApi md5HexDigest:myString]; 


//Set parameter 
NSMutableDictionary *params = [[NSMutableDictionary alloc]init]; 
[params setObject:myString forKeyedSubscript:@"order"]; 

//Generate the request with the give settings 
NSMutableURLRequest *req = [self getRequestWithFunction:@"admin/orders.json" requestType:@"POST" params:params ssl:true]; 

</code> 

服務器給我的回覆說。

<code> 
{"errors":{"order":"expected String to be a Hash"}} 
</code> 

我試着散列所有它,只有值,在這個例子中的一切順序,無法讓它的工作。我是否錯誤地哈希?

我在這裏錯過了什麼?

+0

我碰到過這個尋找相同的解決方案。我現在修好了。它與哈希無關,該錯誤是誤導。不要從您的JSON創建一個哈希字符串。只需發佈JSON並確保您的JSON有效並且沒有任何額外的轉義。那個哈希字符串錯誤將會消失,並且它會工作。從你的代碼中,我會建議創建一個包含「order」的字典,然後將其轉換爲JSON字符串一次。如果您先將字典的子部分轉換爲JSON,那麼父代又會創建額外的轉義,這在我的例子中引起了這個問題。 – 2015-04-05 23:01:13

回答

0

我也有同樣的問題。我已經通過設置正確的標題在提出請求之前得到修復 setHeader(「Content-Type」,「application/json」)