2017-04-11 104 views
0

广东话使用WooCommerce APIAndroid的广东话使用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": "[email protected]", 
     "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 
    } 
} 

什么是错的与此代码。 谢谢你的时间。 如有任何疑问,请评论。

回答

2

Am正在回答这个问题。

注: - 截至目前,已经看到了很多这样的问题,是对计算器,没有答案是provided.Many已经获得风滚草:)

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

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

的优惠券JSON被张贴是

{"code":"asdfas"} 

创建优惠券资源的最小参数是“代码” parameter.Other参数optional.So现在用的是最小的JSON可能创造一个优惠券。

URL应该为

http://pro.....epo.net/scoop/wp-json/wc/v2/coupons?oauth_consumer_key=ck_2f53925cb6d2c8.....f118d01ed80e&oauth_timestamp=1492154063&oauth_nonce=JqYIfq&oauth_signature_method=HMAC-SHA1&oauth_signature=FC1lJ8Vzw.....B86UGlAoWA=

你们中许多人谁可以列出资源也可以presumbly创建正确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天过去了,然后到达这个答案。 如有任何疑问,请评论。