Java Android无法使用WooCommerceAPI创建订单

Java Android无法使用WooCommerceAPI创建订单,java,android,json,woocommerce,woocommerce-rest-api,Java,Android,Json,Woocommerce,Woocommerce Rest Api,无法使用WooCommerce API创建订单 android代码(okhttp)是 RequestBody formBody=new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart(oauthConsumerKeyString,oauthConsumerKeyString值) .addFormDataPart(oauthNonceKeyString、oauthNonceKeyValue) .addFor

无法使用WooCommerce API创建订单

android代码(okhttp)是

RequestBody formBody=new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart(oauthConsumerKeyString,oauthConsumerKeyString值)
.addFormDataPart(oauthNonceKeyString、oauthNonceKeyValue)
.addFormDataPart(oauthSignatureMethodKey、oauthSignatureMethodKey值)
.addFormDataPart(oauthTimestampKeyString,oauthTimestampKeyString值)
.addFormDataPart(“oauth_签名”,签名)
.addFormDataPart(“订单”,postDataString)
.build();
Request Request=newrequest.Builder()
.url(urlOrders)
.职位(表格)
.build();
注意

addFormDataPart(“订单”,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
    }
}
这个代码有什么问题。 谢谢你抽出时间。
如果有任何疑问,请发表评论。

我正在写这个答案

注意:-到目前为止,我们在stackoverflow上看到了许多类似的问题,但没有提供答案。许多问题都获得了tumbleweed.:)

让我们创建优惠券资源

无论是创建优惠券还是订单,下面的方法都是一样的,以优惠券为例,因为它有一个简短的json参数

要发布的优惠券json是

{"code":"asdfas"}
创建优惠券资源的最小参数是“code”参数。其他参数是可选的。因此,我使用可能的最小json来创建优惠券

url应为

可以列出资源的许多人也可以预先创建正确的签名。因此,这里不记录签名创建。可以查看其他许多资源

现在获取json媒体类型

MediaType JSON = MediaType.parse("application/json; charset=utf-8");
现在是最后的代码(我使用okhttp3)

然后,瞧!已创建资源:)

注:2天过去了,然后得出了这个答案。
如果有任何疑问,请发表评论。

我正在写这个答案

注意:-到目前为止,我们在stackoverflow上看到了许多类似的问题,但没有提供答案。许多问题都获得了tumbleweed.:)

让我们创建优惠券资源

无论是创建优惠券还是订单,下面的方法都是一样的,以优惠券为例,因为它有一个简短的json参数

要发布的优惠券json是

{"code":"asdfas"}
创建优惠券资源的最小参数是“code”参数。其他参数是可选的。因此,我使用可能的最小json来创建优惠券

url应为

可以列出资源的许多人也可以预先创建正确的签名。因此,这里不记录签名创建。可以查看其他许多资源

现在获取json媒体类型

MediaType JSON = MediaType.parse("application/json; charset=utf-8");
现在是最后的代码(我使用okhttp3)

然后,瞧!已创建资源:)

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