Android-无法使用 woocommerce 创建订单 api
Android-Cant create order using woocommerce api
无法使用 WooCommerce 创建订单 API
android 代码 (okhttp) 是
RequestBody formBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart(oauthConsumerKeyString, oauthConsumerKeyStringValue)
.addFormDataPart(oauthNonceKeyString, oauthNonceKeyValue)
.addFormDataPart(oauthSignatureMethodKey, oauthSignatureMethodKeyValue)
.addFormDataPart(oauthTimestampKeyString, oauthTimeStampKeyStringValue)
.addFormDataPart("oauth_signature", signature)
.addFormDataPart("orders", postDataString)
.build();
Request request = new Request.Builder()
.url(urlOrders)
.post(formBody)
.build();
注意
的部分
addFormDataPart("orders", postDataString).
如果删除此部分,则创建的订单没有地址、用户信息、价格、产品 ID 等详细信息。所以所有参数都正常工作。
现在如果不省略上面的部分,订单不会创建,错误显示为:
Invalid signature - provided signature does not match.
变量postDataString
包含以下JSON数据
{
"payment_method": "bacs",
"payment_method_title": "Direct Bank Transfer",
"set_paid": true,
"billing": {
"first_name": "John",
"last_name": "Doe",
"address_1": "969 Market",
"address_2": "",
"city": "San Francisco",
"state": "CA",
"postcode": "94103",
"country": "US",
"email": "john.doe@example.com",
"phone": "(555) 555-5555"
},
"shipping": {
"first_name": "John",
"last_name": "Doe",
"address_1": "969 Market",
"address_2": "",
"city": "San Francisco",
"state": "CA",
"postcode": "94103",
"country": "US"
},
"line_items": [
{
"product_id": "341",
"quantity": "1"
},
{
"product_id": "339",
"quantity": "1"
}
],
"shipping_lines": {
"method_id": "flat_rate",
"method_title": "Flat Rate",
"total": 10
}
}
这段代码有什么问题。
谢谢你的时间。
如有疑问请评论。
正在写这个答案。
注意:- 截至目前,在 Whosebug 上看到很多这样的问题,但没有答案 provided.Many 已经赚到了风滚草。:)
让我们创建优惠券资源。
以下方法无论是创建优惠券还是以orders.Taking优惠券为例都是一样的,因为它有一个简短的json参数。
要发布的优惠券json是
{"code":"asdfas"}
创建优惠券资源的最小参数是 "code" parameter.Other 参数是 optional.So 我正在使用最小 json 可能创建优惠券。
url 应该是
你们中的许多可以列出资源的人也可以推测创建正确的 signatures.So 没有记录签名创建 here.Can 看看那里的许多其他资源。
现在获取 json 媒体类型
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
现在是最终代码(我正在使用 okhttp3)
okhttp3.RequestBody body = RequestBody.create(JSON, dataCouponJsonObject.toString());
okhttp3.Request request = new okhttp3.Request.Builder().url(the url given above)
.post(body)
.build();
response = client.newCall(request).execute();
然后瞧!资源已创建:)
注意:2 天过去了,然后得出了这个答案。
如有疑问请评论。
无法使用 WooCommerce 创建订单 API
android 代码 (okhttp) 是
RequestBody formBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart(oauthConsumerKeyString, oauthConsumerKeyStringValue)
.addFormDataPart(oauthNonceKeyString, oauthNonceKeyValue)
.addFormDataPart(oauthSignatureMethodKey, oauthSignatureMethodKeyValue)
.addFormDataPart(oauthTimestampKeyString, oauthTimeStampKeyStringValue)
.addFormDataPart("oauth_signature", signature)
.addFormDataPart("orders", postDataString)
.build();
Request request = new Request.Builder()
.url(urlOrders)
.post(formBody)
.build();
注意
的部分addFormDataPart("orders", postDataString).
如果删除此部分,则创建的订单没有地址、用户信息、价格、产品 ID 等详细信息。所以所有参数都正常工作。
现在如果不省略上面的部分,订单不会创建,错误显示为:
Invalid signature - provided signature does not match.
变量postDataString
包含以下JSON数据
{
"payment_method": "bacs",
"payment_method_title": "Direct Bank Transfer",
"set_paid": true,
"billing": {
"first_name": "John",
"last_name": "Doe",
"address_1": "969 Market",
"address_2": "",
"city": "San Francisco",
"state": "CA",
"postcode": "94103",
"country": "US",
"email": "john.doe@example.com",
"phone": "(555) 555-5555"
},
"shipping": {
"first_name": "John",
"last_name": "Doe",
"address_1": "969 Market",
"address_2": "",
"city": "San Francisco",
"state": "CA",
"postcode": "94103",
"country": "US"
},
"line_items": [
{
"product_id": "341",
"quantity": "1"
},
{
"product_id": "339",
"quantity": "1"
}
],
"shipping_lines": {
"method_id": "flat_rate",
"method_title": "Flat Rate",
"total": 10
}
}
这段代码有什么问题。 谢谢你的时间。 如有疑问请评论。
正在写这个答案。
注意:- 截至目前,在 Whosebug 上看到很多这样的问题,但没有答案 provided.Many 已经赚到了风滚草。:)
让我们创建优惠券资源。
以下方法无论是创建优惠券还是以orders.Taking优惠券为例都是一样的,因为它有一个简短的json参数。
要发布的优惠券json是
{"code":"asdfas"}
创建优惠券资源的最小参数是 "code" parameter.Other 参数是 optional.So 我正在使用最小 json 可能创建优惠券。
url 应该是
你们中的许多可以列出资源的人也可以推测创建正确的 signatures.So 没有记录签名创建 here.Can 看看那里的许多其他资源。
现在获取 json 媒体类型
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
现在是最终代码(我正在使用 okhttp3)
okhttp3.RequestBody body = RequestBody.create(JSON, dataCouponJsonObject.toString());
okhttp3.Request request = new okhttp3.Request.Builder().url(the url given above)
.post(body)
.build();
response = client.newCall(request).execute();
然后瞧!资源已创建:)
注意:2 天过去了,然后得出了这个答案。 如有疑问请评论。