programing

모바일 앱용 WooCommerce API

css3 2023. 3. 26. 11:41

모바일 앱용 WooCommerce API

WooCommerce 숍용 네이티브 모바일 안드로이드 앱을 개발할 예정입니다.

REST API 매뉴얼은 이쪽에서 확인했습니다.http://docs.woocommercev2.apiary.io/ 이미 테스트를 시작했는데 다른 콜을 할 때

GET /orders가게의 모든 주문을 돌려준다고 칩시다.

API를 사용하여 최종 사용자 앱을 개발하는 방법을 알고 계신 분?

예를 들어 다음과 같습니다.

GET /products

PUT /order(로그인한 사용자의 주문 작성)

GET /order(로그인한 사용자의 주문을 가져옵니다.)

어떤 아이디어라도 감사합니다:)

잘 부탁드립니다.

저는 이 단계를 제안합니다.

먼저 백엔드에서 Woocommerce API를 활성화 할 수 있습니다.http://docs.woothemes.com/document/woocommerce-rest-api/

https://www.npmjs.com/package/woocommerce 에서는 이 링크를 사용합니다.이 링크에는 woocommerce와 대화하는 모든 방법이 포함되어 있습니다.또는 경량 미들웨어를 사용하면 woocommerce 서버에 접속하여 JSON 데이터를 앱으로 되돌리는 데 도움이 됩니다.

ionic 프레임워크를 사용하여 서비스를 작성하고 씬 미들웨어 클라이언트와 대화합니다.항상 서버에 영향을 주지 않도록 데이터를 캐시(로컬 스토리지 사용)하는 것을 잊지 마십시오.- Contus M Comm

위해서http(또한 ssl 프로토콜(예:https)의 요구는 OAthu 1.0a 인증 프레임워크에서 사용해야 합니다.자바에는 oauth 1.0a용 라이브러리가 많이 있습니다.scribeJava에서 사용하고 있습니다.

따라서 다음 단계를 수행합니다.

  1. 종속성 scop에서 다음을 추가합니다.

    compile 'org.scribe:scribe:1.3.5'

  2. OAuth 서비스 공급자의 WoocommerceApi로 새 클래스입니다.중요한.를 사용해야 합니다.
    publicoauth 공급자를 구현하기 위한 DefaultApi10a 클래스

    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. 그리고 요청은 다음에서 해야 합니다.

    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());
    

문서에 따르면 예상되는 데이터 형식은 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/reference/contrace-collection/create-a-contrace

API가 모든 관련 엔드포인트에 대한 POST 요청을 받아들인다는 것을 고려하면 이는 쇼핑 주문으로 가능합니다.

Appmaker.xyz와 같은 플러그 앤 플레이 솔루션 AKA 앱 빌더를 사용하여 최종 사용자 앱을 만들 수 있습니다.

언급URL : https://stackoverflow.com/questions/27489565/woocommerce-api-for-mobile-app