适用于移动应用的WooCommerce API

时间:2014-12-15 17:23:36

标签: android wordpress api rest woocommerce

我计划为WooCommerce商店开发原生移动Android应用程序。

我在这里查看了他们的REST API文档:http://docs.woocommercev2.apiary.io/ 我已经开始测试了,但是当我做不同的电话时

GET /orders让我们说它会退回商店的所有订单。

有谁知道如何使用他们的API开发最终用户应用程序。

例如:

GET /products

PUT /order(为登录用户创建订单)

GET /order(获取登录用户的订单)

任何想法都表示赞赏:)

提前致谢。

4 个答案:

答案 0 :(得分:1)

对于http(而非ssl协议,例如https)请求,您必须使用 OAthu 1.0a 身份验证框架。 java中有很多 oauth 1.0a 的库, 我使用 scribeJava

因此,请执行以下步骤:

  1. 在依赖scop的 app/build.gradle 中添加以下内容:

    compile 'org.scribe:scribe:1.3.5'

  2. OAuth服务提供商的 WoocommerceApi 新课程。 重要。你必须使用
    DefaultApi10a中的public类用于实现oauth提供程序

    public static class WooCommerceApi extends org.scribe.builder.api.DefaultApi10a {
    
        @Override
        public org.scribe.model.Verb getRequestTokenVerb()
        {
            return org.scribe.model.Verb.POST;
        }
    
        @Override
        public String getRequestTokenEndpoint() {
            return "http://www.your-domain.com/wc-auth/authorize";
        }
    
        @Override
        public String getAccessTokenEndpoint() {
            return "none";
        }
    
        @Override
        public String getAuthorizationUrl(org.scribe.model.Token requestToken) {
            return "none";
        }
    }
    
  3. 必须在ThreadAsyncTask

    中提出请求
    String restURL = "http://www.your-domain.com/wp-json/wc/v1/products/";
    OAuthService service = new ServiceBuilder()
         .provider(WooCommerceApi.class)
         .apiKey(CONSUMER_KEY) //Your Consumer key
         .apiSecret(CONSUMER_SECRET) //Your Consumer secret
         .scope("API.Public") //fixed
         .signatureType(SignatureType.QueryString)
         .build();
    OAuthRequest request = new OAuthRequest(Verb.GET, restURL);
    // for POST requests 
    // OAuthRequest request = new OAuthRequest(Verb.POST, restURL); 
    // request.addBodyParameter(YOUR_PARAM_KEY, YOUR_VALUE);
    // or 
    // request.addPayload(YOUR_JSON);
    Token accessToken = new Token("", ""); //not required for context.io
    service.signRequest(accessToken, request);
    Response response = request.send();
    Log.d("OAuthTask",response.getBody());
    

答案 1 :(得分:0)

根据文档,预期的数据格式仅为JSON(与之前的XML或Json形成对比),但遗憾的是没有进一步说明每个端点的数据结构。

以下是当前创建优惠券文档中POST请求格式的唯一示例:

REST请求URI

POST http://private-anon-0fe404a22-woocommercev2.apiary-mock.com/coupons?fields=id,code&filter=filter[limit]=100&page=2

Java代码(从文档中粘贴)

Client client = ClientBuilder.newClient();
Entity payload = Entity.json("{  'coupon': {    'code': 'autumn-is-coming',    'type': 'fixed_cart',    'amount': '4.00',    'individual_use': true,    'description': ''  }}");
Response response = client.target("http://private-anon-0fe404a22-woocommercev2.apiary-mock.com")
  .path("/coupons{?fields,filter,page}")
  .request(MediaType.APPLICATION_JSON_TYPE)
  .post(payload);

System.out.println("status: " + response.getStatus());
System.out.println("headers: " + response.getHeaders());
System.out.println("body:" + response.readEntity(String.class));

Json回应

{
  "coupon": {
    "id": 21548,
    "code": "augustheat",
    "type": "fixed_cart",
    "created_at": "2014-08-30T19:25:48Z",
    "updated_at": "2014-08-30T19:25:48Z",
    "amount": "5.00",
    "individual_use": false,
    "product_ids": [],
    "exclude_product_ids": [],
    "usage_limit": null,
    "usage_limit_per_user": null,
    "limit_usage_to_x_items": 0,
    "usage_count": 0,
    "expiry_date": "2014-08-30T21:22:13Z",
    "apply_before_tax": true,
    "enable_free_shipping": false,
    "product_category_ids": [],
    "exclude_product_category_ids": [],
    "exclude_sale_items": false,
    "minimum_amount": "0.00",
    "maximum_amount": "0.00",
    "customer_emails": [],
    "description": "Beat the August heat with $5 off your purchase!"
  }
}

http://docs.woocommercev2.apiary.io/#reference/coupons/coupons-collection/create-a-coupon

考虑到声称API接受所有相关端点的POST请求,这应该可以通过购物订单。

答案 2 :(得分:0)

我会建议这个步骤

首先,您可以从后端启用针对woocommerce的Api - http://docs.woothemes.com/document/woocommerce-rest-api/

https://www.npmjs.com/package/woocommerce使用此链接,其中包含与woocommerce交互的所有方法。否则使用轻量级中间件,它有助于连接woocommerce服务器和&将JSON数据返回到您的应用。

使用离子框架编写服务并与您的瘦中间件客户端交谈。不要忘记缓存数据(使用本地存储),这样就不会一直打到服务器。 - Contus M Comm

答案 3 :(得分:0)

一个人可以使用即插即用解决方案AKA应用构建器(例如Appmaker.xyz)来创建最终用户应用。