【发布时间】:2018-06-30 13:27:55
【问题描述】:
我正在尝试从 iOS 创建订单以使用 Alamofire 吸引商务。我正在寻找合适的解决方案。
在尝试创建订单后出现此错误:
{
code = "woocommerce_rest_cannot_create";
data = {
status = 401;
};
message = "Sorry, you are not allowed to create resources.";
}
代码:
let parameters: [String: AnyObject] = [
"consumer_key":"*******" as AnyObject, // here is my user name
"consumer_secret":"*******" as AnyObject, // here is my secret key
"shipping_total": "120.00" as AnyObject,
"total": "6015.00" as AnyObject,
"customer_id": 0 as AnyObject,
"billing": [
"first_name": "Faizul",
"last_name": "karim",
"company": "somecompany",
"address_1": "someAddress",
"address_2": "someAddress",
"city": "Dhaka",
"state": "Dhaka",
"postcode": "1203",
"country": "bd",
"email": "faizulkarim28@gmail.com",
"phone": "001929838939"
] as AnyObject,
"shipping": [
"first_name": "Faizul",
"last_name": "karim",
"company": "somecompany",
"address_1": "someAddress",
"address_2": "someAddress",
"city": "Dhaka",
"state": "Dhaka",
"postcode": "1203",
"country": "bd",
] as AnyObject,
"line_items":[
"id": 388,
"name": "Mens Casual Blazer - 40",
"product_id": 55677,
"variation_id": 57619,
"quantity": 1,
"tax_class": "",
"subtotal": "5895.00",
"subtotal_tax": "0.00",
"total": "5895.00",
"total_tax": "0.00",
] as AnyObject
]
Alamofire.request("https://infinitymegamall.com/wp-json/wc/v2/orders",method: .post, parameters: parameters)
.responseJSON{ response in
if let json = response.result.value {
print(json)
}
}
【问题讨论】:
-
我从未使用过 woocommerce API,但您似乎没有使用正确的身份验证方法,因此出现了错误。
-
我可以通过此身份验证获取 Json 数据。但无法发布数据。在获取数据中只有 2 个参数值。但是当我尝试发布订单时,有很多参数值。
-
查看API的documentation,好像需要指定API密钥的权限,你确定你也设置了写权限,而不仅仅是读权限?
-
我确定访问代码没问题
-
我在 android 之前做过这个。参数中缺少一些东西。最重要的是 oauth_signature。为此,hmac 需要使用 sha1 加密,但我无论如何也无法确认此加密。
标签: ios swift woocommerce alamofire orders