首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用woocommerce api创建订单

问使用woocommerce api创建订单
EN

Stack Overflow用户
提问于 2017-04-11 14:12:32
回答 1查看 1.3K关注 0票数 0

无法使用WooCommerce API创建订单

android代码(okhttp)是

代码语言:javascript
复制
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();

注意…的部分

代码语言:javascript
复制
addFormDataPart("orders", postDataString).

如果这个部分被删除,那么订单就会被创建,没有地址、用户信息、价格、产品id等细节。所以所有参数都正常工作。

现在,如果不省略上面的部分,则不会创建订单,错误将显示为:

代码语言:javascript
复制
Invalid signature - provided signature does not match.

变量postDataString包含以下JSON数据

代码语言:javascript
复制
{
    "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
    }
}

这个代码有什么问题。耽误您时间,实在对不起。如有任何疑问,请评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-14 07:22:07

我在写这个答案。

注意:-到目前为止,已经看到许多类似的问题都在堆栈溢出中,没有答案是provided.Many赢得了翻滚杂草。

让我们创建一个优惠券资源。

下面的方法是相同的,无论是创建优惠券还是orders.Taking优惠券,因为它有一个短的json参数。

将张贴的优惠券是

代码语言:javascript
复制
{"code":"asdfas"}

创建优惠券资源的最小参数是“代码”parameter.Other参数是optional.So am,使用最小的json创建优惠券。

网址应该是

signature=FC1lJ8Vzw.....B86UGlAoWA=

您中许多能够列出资源的人也可以创建正确的signatures.So,而不是记录签名创建的here.Can,看外面的许多其他资源。

现在使用json媒体类型

代码语言:javascript
复制
MediaType JSON = MediaType.parse("application/json; charset=utf-8");

现在是最后的代码(Am使用okhttp3)

代码语言:javascript
复制
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();

然后瞧!创建资源:)

注:两天过去了,然后得到了这个答案。如有任何疑问,请评论。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43348471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档