2027 lines
98 KiB
Java
2027 lines
98 KiB
Java
package it.acxent.api.ebay;
|
|
|
|
import com.ebay.sdk.ApiAccount;
|
|
import com.ebay.sdk.ApiContext;
|
|
import com.ebay.sdk.ApiCredential;
|
|
import com.ebay.sdk.TimeFilter;
|
|
import com.ebay.sdk.call.AddItemCall;
|
|
import com.ebay.sdk.call.FetchTokenCall;
|
|
import com.ebay.sdk.call.GetItemCall;
|
|
import com.ebay.sdk.call.GetMyeBaySellingCall;
|
|
import com.ebay.sdk.call.GetOrdersCall;
|
|
import com.ebay.sdk.call.GetSellerListCall;
|
|
import com.ebay.sdk.call.GetSessionIDCall;
|
|
import com.ebay.sdk.call.GetSuggestedCategoriesCall;
|
|
import com.ebay.sdk.call.GetUserCall;
|
|
import com.ebay.sdk.call.VerifyAddItemCall;
|
|
import com.ebay.soap.eBLBaseComponents.AmountType;
|
|
import com.ebay.soap.eBLBaseComponents.BrandMPNType;
|
|
import com.ebay.soap.eBLBaseComponents.BuyerPaymentMethodCodeType;
|
|
import com.ebay.soap.eBLBaseComponents.CategoryType;
|
|
import com.ebay.soap.eBLBaseComponents.CountryCodeType;
|
|
import com.ebay.soap.eBLBaseComponents.CurrencyCodeType;
|
|
import com.ebay.soap.eBLBaseComponents.DetailLevelCodeType;
|
|
import com.ebay.soap.eBLBaseComponents.FeesType;
|
|
import com.ebay.soap.eBLBaseComponents.GalleryTypeCodeType;
|
|
import com.ebay.soap.eBLBaseComponents.ItemListCustomizationType;
|
|
import com.ebay.soap.eBLBaseComponents.ItemType;
|
|
import com.ebay.soap.eBLBaseComponents.ListingDurationCodeType;
|
|
import com.ebay.soap.eBLBaseComponents.ListingTypeCodeType;
|
|
import com.ebay.soap.eBLBaseComponents.OrderType;
|
|
import com.ebay.soap.eBLBaseComponents.PaginatedItemArrayType;
|
|
import com.ebay.soap.eBLBaseComponents.PaginationType;
|
|
import com.ebay.soap.eBLBaseComponents.PictureDetailsType;
|
|
import com.ebay.soap.eBLBaseComponents.ProductListingDetailsType;
|
|
import com.ebay.soap.eBLBaseComponents.ReturnPolicyType;
|
|
import com.ebay.soap.eBLBaseComponents.ReturnsAcceptedCodeType;
|
|
import com.ebay.soap.eBLBaseComponents.ReturnsWithinOptionsCodeType;
|
|
import com.ebay.soap.eBLBaseComponents.SKUArrayType;
|
|
import com.ebay.soap.eBLBaseComponents.SellerPaymentProfileType;
|
|
import com.ebay.soap.eBLBaseComponents.SellerProfilesType;
|
|
import com.ebay.soap.eBLBaseComponents.SellerReturnProfileType;
|
|
import com.ebay.soap.eBLBaseComponents.SellerShippingProfileType;
|
|
import com.ebay.soap.eBLBaseComponents.ShippingCostPaidByOptionsCodeType;
|
|
import com.ebay.soap.eBLBaseComponents.SiteCodeType;
|
|
import com.ebay.soap.eBLBaseComponents.SuggestedCategoryType;
|
|
import com.ebay.soap.eBLBaseComponents.TaxIdentifierType;
|
|
import com.ebay.soap.eBLBaseComponents.TradingRoleCodeType;
|
|
import it.acxent.api.ebay.json.EbayOrder;
|
|
import it.acxent.art.Articolo;
|
|
import it.acxent.art.CaratteristicaArticolo;
|
|
import it.acxent.cc.Attivita;
|
|
import it.acxent.common.Parm;
|
|
import it.acxent.common.StatusMsg;
|
|
import it.acxent.db.ApplParm;
|
|
import it.acxent.db.ApplParmFull;
|
|
import it.acxent.db.DBAdapter;
|
|
import it.acxent.db.ResParm;
|
|
import it.acxent.util.Vectumerator;
|
|
import java.io.IOException;
|
|
import java.net.URLEncoder;
|
|
import java.sql.Date;
|
|
import java.sql.Timestamp;
|
|
import java.util.ArrayList;
|
|
import java.util.Base64;
|
|
import java.util.Calendar;
|
|
import java.util.Vector;
|
|
import org.apache.commons.codec.binary.StringUtils;
|
|
import org.apache.http.HttpEntity;
|
|
import org.apache.http.HttpResponse;
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
import org.apache.http.client.methods.HttpDelete;
|
|
import org.apache.http.client.methods.HttpGet;
|
|
import org.apache.http.client.methods.HttpPost;
|
|
import org.apache.http.client.methods.HttpPut;
|
|
import org.apache.http.client.methods.HttpUriRequest;
|
|
import org.apache.http.entity.ByteArrayEntity;
|
|
import org.apache.http.entity.StringEntity;
|
|
import org.apache.http.impl.client.CloseableHttpClient;
|
|
import org.apache.http.impl.client.HttpClientBuilder;
|
|
import org.apache.http.impl.client.HttpClients;
|
|
import org.apache.http.util.EntityUtils;
|
|
import org.json.JSONArray;
|
|
import org.json.JSONObject;
|
|
|
|
public class EbayAbliaApi {
|
|
private Attivita attivita;
|
|
|
|
private boolean debug = false;
|
|
|
|
private ApplParmFull apFull = null;
|
|
|
|
private String token;
|
|
|
|
private String applicationId;
|
|
|
|
private String ruName;
|
|
|
|
private String certificateId;
|
|
|
|
private Date expirationDate;
|
|
|
|
private String tokenUsername;
|
|
|
|
private boolean useSandbox = false;
|
|
|
|
public static final String EBAY_SESSION_ID = "_EBAY_SESSION_ID";
|
|
|
|
public static final String API_SANDBOX = "https://api.sandbox.ebay.com/wsapi";
|
|
|
|
public static final String API_PRODUCTION = "https://api.ebay.com/wsapi";
|
|
|
|
public static final String P_EBAY_USE_SANDBOX = "EBAY_USE_SANDBOX";
|
|
|
|
public static final String P_EBAY_CERTIFICATE_ID_PRODUCTION = "EBAY_CERTIFICATE_ID_PRODUCTION";
|
|
|
|
public static final String P_EBAY_APPLICATION_ID_PRODUCTION = "EBAY_APPLICATION_ID_PRODUCTION";
|
|
|
|
public static final String P_EBAY_DEVELOPER_ID_PRODUCTION = "EBAY_DEVELOPER_ID_PRODUCTION";
|
|
|
|
public static final String P_EBAY_RU_NAME_PRODUCTION = "EBAY_RU_NAME_PRODUCTION";
|
|
|
|
public static final String P_EBAY_SIGN_IN_AUTH_N_AUTH_PRODUCTION_LINK = "EBAY_SIGN_IN_AUTH_N_AUTH_PRODUCTION_LINK";
|
|
|
|
public static final String P_EBAY_SIGN_IN_OAUTH_PRODUCTION_LINK = "EBAY_SIGN_IN_OAUTH_PRODUCTION_LINK";
|
|
|
|
public static final String P_EBAY_USER_TOKEN_PRODUCTION = "EBAY_USER_TOKEN_PRODUCTION";
|
|
|
|
public static final String P_EBAY_EXPIRE_DATE_TOKEN_PRODUCTION = "EBAY_EXPIRE_DATE_TOKEN_PRODUCTION";
|
|
|
|
public static final String P_EBAY_USER_TOKEN_NAME_PRODUCTION = "EBAY_USER_TOKEN_NAME_PRODUCTION";
|
|
|
|
public static final String P_EBAY_CERTIFICATE_ID_SANDBOX = "EBAY_CERTIFICATE_ID_SANDBOX";
|
|
|
|
public static final String P_EBAY_APPLICATION_ID_SANDBOX = "EBAY_APPLICATION_ID_SANDBOX";
|
|
|
|
public static final String P_EBAY_DEVELOPER_ID_SANDBOX = "EBAY_DEVELOPER_ID_SANDBOX";
|
|
|
|
public static final String P_EBAY_RU_NAME_SANDBOX = "EBAY_RU_NAME_SANDBOX";
|
|
|
|
public static final String P_EBAY_USER_TOKEN_SANDBOX = "EBAY_USER_TOKEN_SANDBOX";
|
|
|
|
private ApiContext apiContext;
|
|
|
|
private String developerId;
|
|
|
|
private static final String URI_CMD_GET_DEFAULT_CATEGORY = "https://api.ebay.com/commerce/taxonomy/v1_beta/get_default_category_tree_id?marketplace_id=EBAY_IT";
|
|
|
|
private static final String URI_CMD_GET_ORDERS = "https://api.ebay.com/sell/fulfillment/v1/order?limit=150&offset=0";
|
|
|
|
private static final String URI_CMD_GET_ORDER = "https://api.ebay.com/sell/fulfillment/v1/order/{orderId}?";
|
|
|
|
private static final String URI_CMD_GET_CATEGORY_SUGGESTION = "https://api.ebay.com/commerce/taxonomy/v1/category_tree/{category_tree_id}/get_category_suggestions?q=";
|
|
|
|
private static final String URI_CMD_GET_FULLFILMENT_POLICY = "https://api.ebay.com/sell/account/v1/fulfillment_policy?marketplace_id=EBAY_IT";
|
|
|
|
private static final String URI_CMD_GET_PAYMENT_POLICY = "https://api.ebay.com/sell/account/v1/payment_policy?marketplace_id=EBAY_IT";
|
|
|
|
private static final String URI_CMD_GET_RETURN_POLICY = "https://api.ebay.com/sell/account/v1/return_policy?marketplace_id=EBAY_IT";
|
|
|
|
private static final String URI_CMD_CREATE_DELETE_INVENTORY_LOCATION = "https://api.ebay.com/sell/inventory/v1/location/{merchantLocationKey}";
|
|
|
|
private static final String URI_CMD_GET_INVENTORY_ITEM = "https://api.ebay.com/sell/inventory/v1/inventory_item/{sku}";
|
|
|
|
private static final String URI_CMD_GET_INVENTORY_ITEMS = "https://api.ebay.com/sell/inventory/v1/inventory_item?limit={limit}&offset={offset}";
|
|
|
|
private static final String URI_CMD_CREATE_OR_REPLACE_INVENTORY_ITEM = "https://api.ebay.com/sell/inventory/v1/inventory_item/{sku}";
|
|
|
|
private static final String URI_CMD_DELETE_INVENTORY_ITEM = "https://api.ebay.com/sell/inventory/v1/inventory_item/{sku}";
|
|
|
|
private static final String URI_CMD_CREATE_OFFER = "https://api.ebay.com/sell/inventory/v1/offer";
|
|
|
|
private static final String URI_CMD_GET_OFFER = "https://api.ebay.com/sell/inventory/v1/offer/{offerId}";
|
|
|
|
private static final String URI_CMD_PUBLISH_OFFER = "https://api.ebay.com/sell/inventory/v1/offer/{offerId}/publish/";
|
|
|
|
private static final String URI_CMD_UPDATE_DELETE_GET_OFFER = "https://api.ebay.com/sell/inventory/v1/offer/{offerId}";
|
|
|
|
private static final String URI_CMD_GET_USER_CONSENT = "https://auth.ebay.com/oauth2/authorize";
|
|
|
|
private static final String URI_CMD_GET_OR_REFRESH_USER_ACCESS_TOKEN = "https://api.ebay.com/identity/v1/oauth2/token";
|
|
|
|
private static final String EBAY_ALL_SCOPES = "https://api.ebay.com/oauth/api_scope https://api.ebay.com/oauth/api_scope/sell.marketing.readonly https://api.ebay.com/oauth/api_scope/sell.marketing https://api.ebay.com/oauth/api_scope/sell.inventory.readonly https://api.ebay.com/oauth/api_scope/sell.inventory https://api.ebay.com/oauth/api_scope/sell.account.readonly https://api.ebay.com/oauth/api_scope/sell.account https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly https://api.ebay.com/oauth/api_scope/sell.fulfillment https://api.ebay.com/oauth/api_scope/sell.analytics.readonly https://api.ebay.com/oauth/api_scope/sell.finances https://api.ebay.com/oauth/api_scope/sell.payment.dispute https://api.ebay.com/oauth/api_scope/commerce.identity.readonly";
|
|
|
|
public static final String CONDITION_NEW = "NEW";
|
|
|
|
public static final String CONDITION_LIKE_NEW = "LIKE_NEW";
|
|
|
|
public static final String CONDITION_NEW_OTHER = "NEW_OTHER";
|
|
|
|
public static final String CONDITION_NEW_WITH_DEFECTS = "NEW_WITH_DEFECTS";
|
|
|
|
public static final String CONDITION_CERTIFIED_REFURBISHED = "CERTIFIED_REFURBISHED";
|
|
|
|
public static final String CONDITION_SELLER_REFURBISHED = "SELLER_REFURBISHED";
|
|
|
|
public static final String CONDITION_USED_EXCELLENT = "USED_EXCELLENT";
|
|
|
|
public static final String CONDITION_USED_VERY_GOOD = "USED_VERY_GOOD";
|
|
|
|
public static final String CONDITION_USED_GOOD = "USED_GOOD";
|
|
|
|
public static final String CONDITION_USED_ACCEPTABLE = "USED_ACCEPTABLE";
|
|
|
|
public static final String CONDITION_FOR_PARTS_OR_NOT_WORKING = "FOR_PARTS_OR_NOT_WORKING";
|
|
|
|
public EbayAbliaApi(String applicationId, String developerId, String certificateId, String ruName, String token) {
|
|
this.applicationId = applicationId;
|
|
this.developerId = developerId;
|
|
this.certificateId = certificateId;
|
|
this.token = token;
|
|
this.ruName = ruName;
|
|
}
|
|
|
|
public EbayAbliaApi(ApplParmFull apFull) {
|
|
this.apFull = apFull;
|
|
this.applicationId = apFull.getParm("EBAY_APPLICATION_ID_PRODUCTION").getTesto();
|
|
this.developerId = apFull.getParm("EBAY_DEVELOPER_ID_PRODUCTION").getTesto();
|
|
this.certificateId = apFull.getParm("EBAY_CERTIFICATE_ID_PRODUCTION").getTesto();
|
|
this.ruName = apFull.getParm("EBAY_RU_NAME_PRODUCTION").getTesto();
|
|
this.token = apFull.getParm("EBAY_USER_TOKEN_PRODUCTION").getTesto();
|
|
this.expirationDate = apFull.getParm("EBAY_EXPIRE_DATE_TOKEN_PRODUCTION").getDataParm();
|
|
this.tokenUsername = apFull.getParm("EBAY_USER_TOKEN_NAME_PRODUCTION").getTesto();
|
|
}
|
|
|
|
public EbayAbliaApi() {}
|
|
|
|
public String getStatus() {
|
|
if (getApFull() == null)
|
|
return "Errore! Dati DB nullo";
|
|
StringBuilder sb = new StringBuilder("Token AuthNAuth\n");
|
|
if (getToken().isEmpty()) {
|
|
sb.append("Token AuthNAuth non presente. Procedere alla richiesta del token.");
|
|
} else {
|
|
sb.append("Token AuthNAuth presente per il cliente ");
|
|
sb.append(getTokenUsername());
|
|
long days = getDaysToExpire();
|
|
if (days > 0L) {
|
|
sb.append("\nScadenza Token tra " + days + " giorni");
|
|
} else {
|
|
sb.append("\nATTENZIONE. Token scaduto da " + -days + " giorni");
|
|
}
|
|
}
|
|
sb.append("\n\nToken oAuth2\n");
|
|
if (getAttivita().getEbayOAuthUserToken().isEmpty()) {
|
|
sb.append("User Token oAuth2 non presente. Procedere alla richiesta del token oAuth.");
|
|
} else {
|
|
sb.append("User Token oAuth2 presente");
|
|
if (getAttivita().getEbayOAuthUserTokenExpire() != null)
|
|
sb.append("\nScadenza oAuth2 Token:" + String.valueOf(getAttivita().getEbayOAuthUserTokenExpire()));
|
|
if (getAttivita().getEbayOAuthRefreshTokenExpire() != null)
|
|
sb.append("\nScadenza Refresh Token:" + String.valueOf(getAttivita().getEbayOAuthRefreshTokenExpire()));
|
|
}
|
|
return sb.toString();
|
|
}
|
|
|
|
public String getStatusHtml() {
|
|
return DBAdapter.convertStringToHtml(getStatus());
|
|
}
|
|
|
|
public boolean isTokenExpired() {
|
|
if (getDaysToExpire() <= 0L)
|
|
return true;
|
|
return false;
|
|
}
|
|
|
|
public boolean isTokenValid() {
|
|
if (getToken().isEmpty())
|
|
return false;
|
|
return !isTokenExpired();
|
|
}
|
|
|
|
public long getDaysToExpire() {
|
|
if (getApFull() == null)
|
|
return -1L;
|
|
long daysTOExpire = DBAdapter.getDateDiff(DBAdapter.getToday(), getExpirationDate());
|
|
return daysTOExpire;
|
|
}
|
|
|
|
public long getUserTokenHourToExpire() {
|
|
if (getApFull() == null)
|
|
return -1L;
|
|
long daysTOExpire = DBAdapter.getDateDiff(DBAdapter.getToday(), getExpirationDate());
|
|
return daysTOExpire;
|
|
}
|
|
|
|
private ApiContext getApiContext() throws IOException {
|
|
if (this.apiContext == null) {
|
|
this.apiContext = new ApiContext();
|
|
this.apiContext.setSite(SiteCodeType.ITALY);
|
|
ApiCredential cred = this.apiContext.getApiCredential();
|
|
if (this.useSandbox) {
|
|
this.apiContext.setApiServerUrl("https://api.sandbox.ebay.com/wsapi");
|
|
} else {
|
|
this.apiContext.setApiServerUrl("https://api.ebay.com/wsapi");
|
|
}
|
|
ApiAccount account = cred.getApiAccount();
|
|
account.setApplication(getApplicationId());
|
|
account.setCertificate(getCertificateId());
|
|
account.setDeveloper(getDeveloperId());
|
|
if (!getToken().isEmpty())
|
|
cred.seteBayToken(getToken());
|
|
}
|
|
return this.apiContext;
|
|
}
|
|
|
|
public String getToken() {
|
|
return (this.token == null) ? "" : this.token.trim();
|
|
}
|
|
|
|
public void setToken(String token) {
|
|
this.token = token;
|
|
}
|
|
|
|
public static void initApplicationParms(ApplParmFull ap) {
|
|
if (ap != null) {
|
|
DBAdapter.logDebug(true, "ebay chechout initParms: start");
|
|
String l_tipoParm = "EBAY";
|
|
StatusMsg.updateMsgByTag(ap, "INIT", l_tipoParm);
|
|
Parm bean = new Parm(ap);
|
|
bean.findByCodice("EBAY_SIGN_IN_AUTH_N_AUTH_PRODUCTION_LINK");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_SIGN_IN_AUTH_N_AUTH_PRODUCTION_LINK");
|
|
bean.setDescrizione("EBAY_SIGN_IN_AUTH_N_AUTH_PRODUCTION_LINK");
|
|
bean.setFlgTipo(0L);
|
|
if (bean.getTesto().isEmpty())
|
|
bean.setTesto("\nhttps://signin.ebay.com/ws/eBayISAPI.dll?SignIn&runame=Ablia_S.r.l.-AbliaSrl-tuttof-dxiwgx&SessID=");
|
|
bean.setNota("LINK PER RICHIEDERE IL TOKEN AUTH N AUTH VIA APPLICATION. VIENE POI FATTO IL REDIRECT INDIETRO CON IL TOKEN O IL RISULTATO NEGATIVO");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_SIGN_IN_OAUTH_PRODUCTION_LINK");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_SIGN_IN_OAUTH_PRODUCTION_LINK");
|
|
bean.setDescrizione("EBAY_SIGN_IN_OAUTH_PRODUCTION_LINK");
|
|
bean.setFlgTipo(0L);
|
|
if (bean.getTesto().isEmpty())
|
|
bean.setTesto("\nhttps://auth.ebay.com/oauth2/authorize?client_id=AbliaSrl-tuttofot-PRD-c14016a09-701a1eb1&response_type=code&redirect_uri=Ablia_S.r.l.-AbliaSrl-tuttof-dxiwgx&scope=https://api.ebay.com/oauth/api_scope https://api.ebay.com/oauth/api_scope/sell.marketing.readonly https://api.ebay.com/oauth/api_scope/sell.marketing https://api.ebay.com/oauth/api_scope/sell.inventory.readonly https://api.ebay.com/oauth/api_scope/sell.inventory https://api.ebay.com/oauth/api_scope/sell.account.readonly https://api.ebay.com/oauth/api_scope/sell.account https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly https://api.ebay.com/oauth/api_scope/sell.fulfillment https://api.ebay.com/oauth/api_scope/sell.analytics.readonly https://api.ebay.com/oauth/api_scope/sell.finances https://api.ebay.com/oauth/api_scope/sell.payment.dispute https://api.ebay.com/oauth/api_scope/commerce.identity.readonly");
|
|
bean.setNota("LINK PER RICHIEDERE IL TOKEN OAUTH2 VIA APPLICATION. VIENE POI FATTO IL REDIRECT INDIETRO CON IL TOKEN O IL RISULTATO NEGATIVO");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_USER_TOKEN_PRODUCTION");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_USER_TOKEN_PRODUCTION");
|
|
bean.setDescrizione("EBAY_USER_TOKEN_PRODUCTION");
|
|
bean.setFlgTipo(0L);
|
|
if (bean.getTesto().isEmpty())
|
|
bean.setTesto("AgAAAA**AQAAAA**aAAAAA**vVQ0Xg**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6ABkYKnAZmCoQidj6x9nY+seQ**CmADAA**AAMAAA**ftrYwOnBwCWOl+k8pJKmriUUg/rWwZH/+E8fLpt/3YSoQhAL846AqCs9wXZv1rPU1jFiM26igTkKZvQTu1WbXuP5mm06fAuE2o1hL1NaQpvhgq4PIMTOo8GsxcNdF1x+jSuPe1mz1WYbtCoJV/y1CzUlsWmMjoVBeyiOfv+xLFKRHsfVWDO/wCbRclWznWrIoune9WYXIObvgT+49kQNqpFS+cXrQky3a+risHb79P525EZ8guGy1CvqpW4rd7PzgpxQImSVUgyBeYlpmKVpEDSBybPnvhJ72qor3U/zEWbmUBL2f/duRsKbvNkq4EiGfRcmPEHGOeEWtSbP1smMHxYRfpC5ZhvOU5dnuAioAej4zmntL0JaVqSZNa5WtF4jy7ZY0aX5DCHKlxCUp7daEC28VaoDFssnhfoL4CHYZ/nkyUWWUl6NosViy/bVf8gHq0zKOzSi7lW4FLd9SQnUNz/xslI3U90s5Cv5OthuCVQAFrNWi/AMUjKhNKoNq1Kvokq82D3mLkY35Kf6rsTRBWaznaGv+nsJB2L2HRPwgtwwgemBlZCSwJBWV2LfCKru6FYhy2M5HtdEDV8b5LcyWebTROrSohwBsFMpmt5f9ifHrG9gSBE85a+l2b5jo1cR4igiNnZY8vsFqih5Vr8Egs3baKGcY4Rjj03ifaDtuLa0aG3Rg3lVw76xKkOvbTEH+P2vR0RTixSVL/MltKiVTktVhimZth9zA5ixJXzIo5hylOrl6Bkt6bAaiYu+i6nM");
|
|
bean.setNota("USER TOKEN DI PRODUZIONE GENERATO FACENDO L'ACCESSO CON L'UTENZA CHE SI VUOLE INTERROGARE. TOKEN DIVERSI SERVONO PER ACCEDERE A ACCOUNT EBAY DIVERSI<BR> TRAMITE Get a User Token Here + Auth'n'Auth<BR>E' NECESSARIO AVERE I DATI DELL'ACCOUNT A CUI VOGLIAMO ACCEDERE PER POTER FARE LE CHIAMATE!!!!ATTENZIONE!!! I TOKEN HANNO UNA SCADENZA DI 18 MESI CIRCA");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_EXPIRE_DATE_TOKEN_PRODUCTION");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_EXPIRE_DATE_TOKEN_PRODUCTION");
|
|
bean.setDescrizione("EBAY_EXPIRE_DATE_TOKEN_PRODUCTION");
|
|
bean.setFlgTipo(2L);
|
|
if (bean.getDataParm() == null) {
|
|
Calendar cal = Calendar.getInstance();
|
|
cal.set(1, 2021);
|
|
cal.set(2, 6);
|
|
cal.set(5, 24);
|
|
bean.setDataParm(new Date(cal.getTimeInMillis()));
|
|
}
|
|
bean.setNota("DATA VALIDITA' PRODUCTION TOKEN DELL'ACCOUNT A CUI FA RIFERIMENTO IL TOKEN GENERATO. VIENE INDICATO QUANDO VIENE GENERATO IL TOKEN");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_USER_TOKEN_NAME_PRODUCTION");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_USER_TOKEN_NAME_PRODUCTION");
|
|
bean.setDescrizione("EBAY_USER_TOKEN_NAME_PRODUCTION");
|
|
bean.setFlgTipo(0L);
|
|
bean.setNota("USERNAME DELL'UTENTE EBAY CUI FA RIFERIMENTO IL TOKEN E LA SUA SCADENZA");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_USER_TOKEN_SANDBOX");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_USER_TOKEN_SANDBOX");
|
|
bean.setDescrizione("EBAY_USER_TOKEN_SANDBOX");
|
|
bean.setFlgTipo(0L);
|
|
bean.setNota("USER TOKEN DI PROVA SANDBOX DI UN UTENTE SANDBOX DI CUI VOGLIAMO TESTARE LE CHIAMATE<BR> TRAMITE Get a User Token Here + Auth'n'Auth<BR>ATTENZIONE!!! I TOKEN HANNO UNA SCADENZA DI 18 MESI CIRCA");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_APPLICATION_ID_PRODUCTION");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_APPLICATION_ID_PRODUCTION");
|
|
bean.setDescrizione("EBAY_APPLICATION_ID_PRODUCTION");
|
|
bean.setFlgTipo(0L);
|
|
if (bean.getTesto().isEmpty())
|
|
bean.setTesto("AbliaSrl-tuttofot-PRD-c14016a09-701a1eb1");
|
|
bean.setNota("APPLICATION ID DI PRODUZIONE DELL'ACCOUNTE DEVELOPER");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_DEVELOPER_ID_PRODUCTION");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_DEVELOPER_ID_PRODUCTION");
|
|
bean.setDescrizione("EBAY_DEVELOPER_ID_PRODUCTION");
|
|
bean.setFlgTipo(0L);
|
|
if (bean.getTesto().isEmpty())
|
|
bean.setTesto("e729c207-9749-4d9d-b882-046d88f14454");
|
|
bean.setNota("DEVELOPER ID DI PRODUZIONE DELL'ACCOUNTE DEVELOPER");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_CERTIFICATE_ID_PRODUCTION");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_CERTIFICATE_ID_PRODUCTION");
|
|
bean.setDescrizione("EBAY_CERTIFICATE_ID_PRODUCTION");
|
|
bean.setFlgTipo(0L);
|
|
if (bean.getTesto().isEmpty())
|
|
bean.setTesto("PRD-14016a09b37a-1fa6-43a5-8201-dfa9");
|
|
bean.setNota("CERTIFICATE ID DI PRODUZIONE DELL'ACCOUNTE DEVELOPER");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_APPLICATION_ID_SANDBOX");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_APPLICATION_ID_SANDBOX");
|
|
bean.setDescrizione("EBAY_APPLICATION_ID_SANDBOX");
|
|
bean.setFlgTipo(0L);
|
|
bean.setNota("APPLICATION ID SANDBOX DELL'ACCOUNTE DEVELOPER");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_DEVELOPER_ID_SANDBOX");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_DEVELOPER_ID_SANDBOX");
|
|
bean.setDescrizione("EBAY_DEVELOPER_ID_SANDBOX");
|
|
bean.setFlgTipo(0L);
|
|
bean.setNota("DEVELOPER ID DI SANDBOX DELL'ACCOUNTE DEVELOPER");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_CERTIFICATE_ID_SANDBOX");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_CERTIFICATE_ID_SANDBOX");
|
|
bean.setDescrizione("EBAY_CERTIFICATE_ID_SANDBOX");
|
|
bean.setFlgTipo(0L);
|
|
bean.setNota("CERTIFICATE ID DI SANDBOX DELL'ACCOUNTE DEVELOPER");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_USE_SANDBOX");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_USE_SANDBOX");
|
|
bean.setDescrizione("EBAY_USE_SANDBOX");
|
|
bean.setFlgTipo(5L);
|
|
bean.setNota("USA PARAMETRI DI SANDBOX O PRODUZIONE");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_RU_NAME_PRODUCTION");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_RU_NAME_PRODUCTION");
|
|
bean.setDescrizione("EBAY_RU_NAME_PRODUCTION");
|
|
bean.setFlgTipo(0L);
|
|
if (bean.getTesto().isEmpty())
|
|
bean.setTesto("Ablia_S.r.l.-AbliaSrl-tuttof-dxiwgx");
|
|
bean.setNota("RuName (eBay Redirect URL name) interfaccia di login in cui si definisce le url di ritorno per prendere il token. Ha bisogno del sessionid");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_RU_NAME_SANDBOX");
|
|
bean.setFlgAdmin(1L);
|
|
bean.setTipoParm(l_tipoParm);
|
|
bean.setCodice("EBAY_RU_NAME_SANDBOX");
|
|
bean.setDescrizione("EBAY_RU_NAME_SANDBOX");
|
|
bean.setFlgTipo(0L);
|
|
bean.setNota("RuName (eBay Redirect URL name) SANDBOX interfaccia di login in cui si definisce le url di ritorno per prendere il token. Ha bisogno del sessionid");
|
|
bean.save();
|
|
bean.findByCodice("EBAY_USER_TOKEN_OAUTH2_PRODUCTION");
|
|
bean.delete();
|
|
bean.findByCodice("EBAY_USER_TOKEN_OAUTH2_SANDBOX");
|
|
bean.delete();
|
|
DBAdapter.logDebug(true, "ebay chechout initParms: stop");
|
|
}
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
String tokenProductionTF = "AgAAAA**AQAAAA**aAAAAA**vVQ0Xg**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6ABkYKnAZmCoQidj6x9nY+seQ**CmADAA**AAMAAA**ftrYwOnBwCWOl+k8pJKmriUUg/rWwZH/+E8fLpt/3YSoQhAL846AqCs9wXZv1rPU1jFiM26igTkKZvQTu1WbXuP5mm06fAuE2o1hL1NaQpvhgq4PIMTOo8GsxcNdF1x+jSuPe1mz1WYbtCoJV/y1CzUlsWmMjoVBeyiOfv+xLFKRHsfVWDO/wCbRclWznWrIoune9WYXIObvgT+49kQNqpFS+cXrQky3a+risHb79P525EZ8guGy1CvqpW4rd7PzgpxQImSVUgyBeYlpmKVpEDSBybPnvhJ72qor3U/zEWbmUBL2f/duRsKbvNkq4EiGfRcmPEHGOeEWtSbP1smMHxYRfpC5ZhvOU5dnuAioAej4zmntL0JaVqSZNa5WtF4jy7ZY0aX5DCHKlxCUp7daEC28VaoDFssnhfoL4CHYZ/nkyUWWUl6NosViy/bVf8gHq0zKOzSi7lW4FLd9SQnUNz/xslI3U90s5Cv5OthuCVQAFrNWi/AMUjKhNKoNq1Kvokq82D3mLkY35Kf6rsTRBWaznaGv+nsJB2L2HRPwgtwwgemBlZCSwJBWV2LfCKru6FYhy2M5HtdEDV8b5LcyWebTROrSohwBsFMpmt5f9ifHrG9gSBE85a+l2b5jo1cR4igiNnZY8vsFqih5Vr8Egs3baKGcY4Rjj03ifaDtuLa0aG3Rg3lVw76xKkOvbTEH+P2vR0RTixSVL/MltKiVTktVhimZth9zA5ixJXzIo5hylOrl6Bkt6bAaiYu+i6nM";
|
|
String tokenProductionCC = "AgAAAA**AQAAAA**aAAAAA**PTFrXw**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6ABkYKnAZmCoQidj6x9nY+seQ**CmADAA**AAMAAA**ftrYwOnBwCWOl+k8pJKmriUUg/rWwZH/+E8fLpt/3YSoQhAL846AqCs9wXZv1rPU1jFiM26igTkKZvQTu1WbXuP5mm06fAuE2o1hL1NaQpvhgq4PIMTOo8GsxcNdF1x+jSuPe1mz1WYbtCoJV/y1CzUlsWmMjoVBeyiOfv+xLFKRHsfVWDO/wCbRclWznWrIoune9WYXIObvgT+49kQNqpFS+cXrQky3a+risHb79P525EZ8guGy1CvqpW4rd7PzgpxQImSVUgyBeYlpmKVpEDSBybPnvhJ72qor3U/zEWbmUBL2f/duRsKbvNkq4EiGfRcmPEHGOeEWtSbP1smMHxYRfpC5ZhvOU5dnuAioAej4zmntL0JaVqSZNa5WtF4jy7ZY0aX5DCHKlxCUp7daEC28VaoDFssnhfoL4CHYZ/nkyUWWUl6NosViy/bVf8gHq0zKOzSi7lW4FLd9SQnUNz/xslI3U90s5Cv5OthuCVQAFrNWi/AMUjKhNKoNq1Kvokq82D3mLkY35Kf6rsTRBWaznaGv+nsJB2L2HRPwgtwwgemBlZCSwJBWV2LfCKru6FYhy2M5HtdEDV8b5LcyWebTROrSohwBsFMpmt5f9ifHrG9gSBE85a+l2b5jo1cR4igiNnZY8vsFqih5Vr8Egs3baKGcY4Rjj03ifaDtuLa0aG3Rg3lVw76xKkOvbTEH+P2vR0RTixSVL/MltKiVTktVhimZth9zA5ixJXzIo5hylOrl6Bkt6bAaiYu+i6nM\n";
|
|
String tokenOath2CC = "v^1.1#i^1#f^0#I^3#p^3#r^0#t^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";
|
|
String appTOkenCC = "v^1.1#i^1#p^1#f^0#r^0#I^3#t^H4sIAAAAAAAAAOVYfWwTZRhf124EYQOZgQUNlBsQw9L2vbt+3UlryrqPMqBlLRPwY3nv7r3t2PXuvHvLWhLIWHQaICIBDEpCMEQliCaYIJpgojGAQkSiENR/CIkaIPEjGgX9w3jXltFNsiFrcIn9p7nnfd7n/T2/3/O873sH+qsnLxpsG7xeY5tUub8f9FfabOQUMLm6qrHWXjm7qgKUONj298/vdwzYryw2YFrW2A5kaKpiIGc2LSsGmzeGiIyusCo0JINVYBoZLObZZGT5MpZyA1bTVazyqkw4Y9EQEYQ0xQmiTxC8HB2kg6ZVuRkzpYYI0utDJBXkKS5AogAgzXHDyKCYYmCo4BBBAQq4SOCi6BQJWK+XpQNu4PetJZydSDckVTFd3IAI5+Gy+bl6CdbRoULDQDo2gxDhWKQlGY/Eos0rUos9JbHCRR6SGOKMMfypSRWQsxPKGTT6Mkbem01meB4ZBuEJF1YYHpSN3ARzF/DzVHsZfzDIUDREPg4EeKYsVLaoehri0XFYFklwiXlXFilYwrmxGDXZ4NYhHhefVpghYlGn9bcyA2VJlJAeIpqXRNZEEgkiHOFkCSZ12YUzGKuiil2JjqiLJ72A9EPAuMzCgSTiyOJChWhFmkes1KQqgmSRZjhXqHgJMlGjkdzQJdyYTnElrkdEbCEq9aOGOKTWWqIWVMzgHsXSFaVNIpz5x7EVGJqNsS5xGYyGIowcyFMUIqCmSQIxcjBfi8XyyRohogdjjfV4+vr63H20W9W7PRQApGf18mVJvgelIWH6Wr1e8JfGnuCS8qnwyJxpSCzOaSaWrFmrJgClmwhTFEky3iLvw2GFR1r/YSjJ2TO8I8rVIbwPegUaMaQoQEoQ/OXokHCxSD0WDsTBnCsN9V6ENRnyyMWbdZZJI10SWNonUnRQRC7Bz4guLyOKLs4n+F2kiBBAiON4Jvh/apQ7LfUk4nWEy1LrZavz3vX0qo7mINOYjMLmDjHe1sm1M7EmGE1nNKo9wfd1Nm9ItGzQn+5eHrrTbrh98ryqoYQqS3yuDAxYvV5GFmhdSEAd55JIlk3DuBI1rEQnlsjWfMMMADXJbTW2m1fTHhWaO7pl6sojHlfOEU2LpdMZDDkZxcqzm/9HO/lt05PMu86EysnUryCkJBQuKe68mm5jPe/WkaFmdPN+5o5bZ3ZK7UWKuQNiXZVlpHeS4xb6Xutr9foYfPzLw+Luci/fTWUi1TYvS2YJdU20zO6JohKcYKcx6Qe018sEA4Fx5dWU1zSVm2jnUJtqYCSMlpqj9S6v1Z7hL/nhivyPHLAdBQO2I5U2G/CABWQDmFdtX+WwT51tSBi5JSi6DalbMd9ddeTuRTkNSnpltU1bBa8tKPmssP9JUD/0YWGynZxS8pUBPHRrpIqcNquGAiSgaBJ4vXRgLWi4NeogZzoe+PW5SH1Ddt+fPx86Huk64zjHHlg6G9QMOdlsVRWOAVsFfzg39Upl+27PIWrH5ldqBenDZetCp7a+/8LjF8gljzlPHvll9xuttS/OOvb7Dzf2vqM+f/VU9srCc3sWtxzf3n6p9u2T6ys6T2/Z+OiuLwavp24c5ra9mpViS+3PeLs+W9l0/pNs055Z58U/DtWf+Pho/Gtf8/xHvrdHp+10/HV9DZrR4vgysiUmzeR+fPlB9NTBSZve/e6DNTNeuqC0TXdOl3qf3fDTvn1bF51YfRn5Ls57OD738MEzZzdeIk47t0eOnW2pPbUZ5TKtr9XUNbTveP2to9/u2EQ2ftRTf99CIXx+zubGz7s/XfneN8y1uvCkufenfqueU9e2k937JrNucBs6cLnlq4t1u/qmXn2iIN/fKcx3YPARAAA=";
|
|
String tokenOath2TX = "v^1.1#i^1#I^3#p^3#r^0#f^0#t^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";
|
|
String tokenOath2TF = "v^1.1#i^1#r^0#I^3#p^3#f^0#t^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";
|
|
String tokenSandboxTF = "AgAAAA**AQAAAA**aAAAAA**lopgWw**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6AEloqgCJCLpg+dj6x9nY+seQ**CmADAA**AAMAAA**EXdobuByZfo3jlPyaaoMjmIzLPynG/su/LcK/ez5bscXTnZrsisIO3r4SfIwHpnGKil7PA5mXe2WQcfzAUA8MGh08lMoYMyaSRVN9jLuJSKxYBWYRdxyvJG+OKC/m4L7Zkorn/7g2KSrZO/pOxl8cJUD9ya3mNu1k3g0OnO5a4/x9iRmdUtcMRDJXKbeACTuoJF5bZdUZCj2SuH/FWhu4EJSh1WVRab+Mbqt1RYJqLUMLL0cGJNAt4hyI4h5w5lsU2Cu/8aoPmEqaZg0UkUBp6RgYa7+/VTI5vlbSuBJdJcZetyhQMcYb7geFYXxOgj3H144rpNjAIv43TK9tioPtUB8WSMz90f8GAdA1gVtg5eJIBVm4MK73VFajnxeaSD97SZUv6LCH6HAvB7coBIZFJWTiMzkpoGu8l+l3xBnjypZKKSAk12bxBXRHHmy1DcZ3/F/aZe/oRAo29VUS88FVzjgtYybjHw6fott2BQBDKz0d1AH5xLPmFBc7vaoGO0seU0GU/a8EIlGS19JOfslAdQOBpOsXuV6E6ldfmWPstJevyv2gP0rEM2kZohKdZGkIXzYg1T2DJAPxoVKEMNko8eqbjuvQrRnRSKbo/9C2TrANIBkoaV04hsQIKfb1HdaYigN2LIeQOF8SQh1y2dg2eNM9J8Y4KGsh7iNLWSicNxEG5ykESblJ6NgTMjh8TEVBpnH7ES+JaXsNdqAmNU+gR1sAtY2MXET4ACEV6eA2EvOyJKl4sG6NoN40kMJNt2o";
|
|
String applicationId = "AbliaSrl-tuttofot-PRD-c14016a09-701a1eb1";
|
|
String certificateId = "PRD-14016a09b37a-1fa6-43a5-8201-dfa9";
|
|
String developerId = "e729c207-9749-4d9d-b882-046d88f14454";
|
|
String ruName = "Ablia_S.r.l.-AbliaSrl-tuttof-dxiwgx";
|
|
String hostname = "localhost";
|
|
String db = "cc";
|
|
ApplParmFull ap = new ApplParmFull(new ApplParm(3, "//" + hostname + "/" + db, "root", "root", 1, 10, 300));
|
|
EbayAbliaApi bean = new EbayAbliaApi(ap);
|
|
EbayResult ebayRes = bean.ebayGetFulfillmentPolicy();
|
|
System.out.println(ebayRes.getMsg() + "\n" + ebayRes.getMsg());
|
|
ebayRes = bean.ebayGetReturnPolicy();
|
|
System.out.println(ebayRes.getMsg() + "\n" + ebayRes.getMsg());
|
|
ebayRes = bean.ebayGetPaymentPolicy();
|
|
System.out.println(ebayRes.getMsg() + "\n" + ebayRes.getMsg());
|
|
}
|
|
|
|
public String getApplicationId() {
|
|
return (this.applicationId == null) ? "" : this.applicationId.trim();
|
|
}
|
|
|
|
public void setApplicationId(String applicationId) {
|
|
this.applicationId = applicationId;
|
|
}
|
|
|
|
public String getDeveloperId() {
|
|
return (this.developerId == null) ? "" : this.developerId.trim();
|
|
}
|
|
|
|
public void setDeveloperId(String developerId) {
|
|
this.developerId = developerId;
|
|
}
|
|
|
|
public String getCertificateId() {
|
|
return (this.certificateId == null) ? "" : this.certificateId;
|
|
}
|
|
|
|
public void setCertificateId(String certificateId) {
|
|
this.certificateId = certificateId;
|
|
}
|
|
|
|
public boolean isUseSandbox() {
|
|
return this.useSandbox;
|
|
}
|
|
|
|
public void setUseSandbox(boolean useSandbox) {
|
|
this.useSandbox = useSandbox;
|
|
}
|
|
|
|
public EbayResult ebayGetFulfillmentPolicy() {
|
|
EbayResult res = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayGetFulfillmentPolicy");
|
|
CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().build();
|
|
HttpGet request = new HttpGet("https://api.ebay.com/sell/account/v1/fulfillment_policy?marketplace_id=EBAY_IT");
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept-Encoding", "application/gzip");
|
|
HttpResponse resp = closeableHttpClient.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(resp.getEntity());
|
|
int statusCode = resp.getStatusLine().getStatusCode();
|
|
String defaultPolicyId = "";
|
|
if (statusCode == 200) {
|
|
JSONObject jo = new JSONObject(content);
|
|
JSONArray joArr = jo.getJSONArray("fulfillmentPolicies");
|
|
for (int i = 0; i < joArr.length(); i++) {
|
|
JSONObject row = joArr.getJSONObject(i);
|
|
JSONArray categoryTypes = row.getJSONArray("categoryTypes");
|
|
if (categoryTypes.length() > 0) {
|
|
JSONObject categoryType = categoryTypes.getJSONObject(0);
|
|
if (categoryType.getBoolean("default")) {
|
|
defaultPolicyId = row.getString("fulfillmentPolicyId");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (!defaultPolicyId.isEmpty()) {
|
|
res.setOk(true);
|
|
res.setResult(defaultPolicyId);
|
|
res.setMsg("Trovata fulfillmentPolicyId di default: " + defaultPolicyId);
|
|
} else {
|
|
res.setMsg("Impossibile trovare fulfillmentPolicyId di default.\nCollegati al tuo account ebay:\nimpostazioni account --> \nPreferenze account: impostazioni --> \nGestore delle regole di vendita --> \nCrea regola Spedizione");
|
|
res.setOk(false);
|
|
}
|
|
} else {
|
|
res.setMsg(content);
|
|
res.setOk(false);
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
res.setMsg(e.getMessage());
|
|
res.setOk(false);
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public EbayResult XXXaddEbayItem(Articolo bean) {
|
|
EbayResult res = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> addEbayItem ");
|
|
ApiContext apiContext = getApiContext();
|
|
VerifyAddItemCall callVI = new VerifyAddItemCall(apiContext);
|
|
callVI.setEnableCompression(true);
|
|
callVI.setItem(getEbayItemByArticolo(bean));
|
|
FeesType feesTYpe = callVI.verifyAddItem();
|
|
if (this.debug)
|
|
System.out.println(callVI.getErrorHandling().value());
|
|
AddItemCall addItemCall = new AddItemCall(apiContext);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
res.setOk(false);
|
|
res.setMsg(e.getMessage());
|
|
}
|
|
return res;
|
|
}
|
|
|
|
private ItemType getEbayItemByArticolo(Articolo bean) {
|
|
String lang = "it";
|
|
ItemType item = new ItemType();
|
|
item.setTitle(bean.getNome());
|
|
item.setSKU(bean.getCodice());
|
|
item.setDescription(bean.getDescrizioneMarketplace(lang));
|
|
item.setCurrency(CurrencyCodeType.EUR);
|
|
item.setCountry(CountryCodeType.IT);
|
|
item.setPostalCode("59100");
|
|
item.setLocation("Prato");
|
|
item.setQuantity(Integer.valueOf((int)bean.getQuantita()));
|
|
item.setQuantityAvailable(Integer.valueOf((int)bean.getQuantita()));
|
|
if (bean.getFlgUsato() == 0L) {
|
|
item.setConditionDisplayName("Nuovo");
|
|
item.setConditionID(Integer.valueOf(1000));
|
|
} else {
|
|
item.setConditionDisplayName("Usato");
|
|
item.setConditionID(Integer.valueOf(0));
|
|
}
|
|
ProductListingDetailsType pldt = new ProductListingDetailsType();
|
|
pldt.setEAN(bean.getCodiceEan());
|
|
BrandMPNType mpn = new BrandMPNType();
|
|
mpn.setBrand(bean.getMarca().getDescrizione());
|
|
mpn.setMPN(bean.getCodiceProduttore());
|
|
pldt.setBrandMPN(mpn);
|
|
item.setProductListingDetails(pldt);
|
|
item.setDispatchTimeMax(Integer.valueOf(2));
|
|
item.setListingType(ListingTypeCodeType.FIXED_PRICE_ITEM);
|
|
item.setListingDuration(ListingDurationCodeType.DAYS_30.value());
|
|
ReturnPolicyType rpt = new ReturnPolicyType();
|
|
rpt.setDescription("Si accettano restituzione di prodotti in perfetto stato, nella confezione originale entro il termine di 14 gg come previsto dalla legge.");
|
|
rpt.setReturnsAccepted("Restituzione accettata");
|
|
rpt.setReturnsAcceptedOption(ReturnsAcceptedCodeType.RETURNS_ACCEPTED.value());
|
|
rpt.setReturnsWithin("14 giorni");
|
|
rpt.setReturnsWithinOption(ReturnsWithinOptionsCodeType.DAYS_14.value());
|
|
rpt.setShippingCostPaidBy("Acquirente");
|
|
rpt.setShippingCostPaidByOption(ShippingCostPaidByOptionsCodeType.BUYER.value());
|
|
item.setReturnPolicy(rpt);
|
|
SellerProfilesType sellerProfile = new SellerProfilesType();
|
|
SellerShippingProfileType sellerShippingProfile = new SellerShippingProfileType();
|
|
sellerShippingProfile.setShippingProfileID(Long.valueOf(4949L));
|
|
sellerProfile.setSellerShippingProfile(sellerShippingProfile);
|
|
SellerReturnProfileType sellerReturnProfile = new SellerReturnProfileType();
|
|
sellerReturnProfile.setReturnProfileID(Long.valueOf(4947L));
|
|
sellerProfile.setSellerReturnProfile(sellerReturnProfile);
|
|
SellerPaymentProfileType sellerPaymentProfile = new SellerPaymentProfileType();
|
|
sellerPaymentProfile.setPaymentProfileID(Long.valueOf(4945L));
|
|
sellerProfile.setSellerPaymentProfile(sellerPaymentProfile);
|
|
item.setSellerProfiles(sellerProfile);
|
|
BuyerPaymentMethodCodeType[] paymentA = new BuyerPaymentMethodCodeType[1];
|
|
paymentA[0] = BuyerPaymentMethodCodeType.PAY_PAL;
|
|
item.setPaymentMethods(paymentA);
|
|
item.setPayPalEmailAddress("acolzi@f3.com");
|
|
if (!bean.getTipo().getEbayCategoryId().isEmpty()) {
|
|
CategoryType ct = new CategoryType();
|
|
ct.setCategoryID(bean.getTipo().getEbayCategoryId());
|
|
ct.setCategoryName(bean.getTipo().getEbayCategoryDesc());
|
|
item.setPrimaryCategory(ct);
|
|
} else {
|
|
CategoryType ct = new CategoryType();
|
|
ct.setCategoryID("80053");
|
|
ct.setCategoryName("Monitor");
|
|
item.setPrimaryCategory(ct);
|
|
}
|
|
AmountType at = new AmountType();
|
|
if (bean.getListinoEbay().getId_listino() > 0L) {
|
|
at.setValue(bean.getListinoEbay().getPrezzoIva(bean).getPrezzoFinale());
|
|
} else {
|
|
at.setValue(bean.getPrezzoBaseIva());
|
|
}
|
|
at.setCurrencyID(CurrencyCodeType.EUR);
|
|
item.setStartPrice(at);
|
|
PictureDetailsType pdt = new PictureDetailsType();
|
|
pdt.setGalleryType(GalleryTypeCodeType.GALLERY);
|
|
ArrayList<String> urlAL = new ArrayList<>();
|
|
for (int i = 1; i < 20; i++) {
|
|
if (bean.isImgExist(i)) {
|
|
String url = bean.getWwwAddressParm() + bean.getWwwAddressParm() + bean.getPathImg();
|
|
urlAL.add(url);
|
|
}
|
|
}
|
|
if (urlAL.size() > 0) {
|
|
String[] arr = urlAL.<String>toArray(new String[urlAL.size()]);
|
|
pdt.setPictureURL(arr);
|
|
} else {
|
|
String[] fake = { "https://i2.ebayimg.com/abc/M28/dummy.jpg" };
|
|
pdt.setPictureURL(fake);
|
|
}
|
|
item.setPictureDetails(pdt);
|
|
return item;
|
|
}
|
|
|
|
public EbayAuthNAuthToken fetchTokenSdk(String l_sessionId) {
|
|
EbayAuthNAuthToken res = new EbayAuthNAuthToken();
|
|
try {
|
|
FetchTokenCall ftc = new FetchTokenCall(getApiContext());
|
|
ftc.setSessionID(l_sessionId);
|
|
res.setToken(ftc.fetchToken());
|
|
res.setExpirationDate(new Date(ftc.getHardExpirationTime().getTimeInMillis()));
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public EbayResult ebayCreateInventoryLocation(String merchantLocationKey) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayCreateInventoryLocation");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
HttpPost request = new HttpPost("https://api.ebay.com/sell/inventory/v1/location/{merchantLocationKey}".replace("{merchantLocationKey}", merchantLocationKey));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept", "application/json");
|
|
request.setHeader("Content-Type", "application/json");
|
|
request.setHeader("Content-Language", "it-IT");
|
|
JSONObject item = getJsonInventoryLocation(merchantLocationKey);
|
|
if (this.debug)
|
|
System.out.println("json ebay v 1:\n" + item.toString(4));
|
|
StringEntity stringEntity = new StringEntity(item.toString(4), "UTF-8");
|
|
request.setEntity((HttpEntity)stringEntity);
|
|
int statusCode = 200;
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
if (statusCode < 300) {
|
|
resER.setOk(true);
|
|
resER.setMsg("Inventory location con chiave " + merchantLocationKey + " creato correttamente");
|
|
if (this.debug)
|
|
System.out.println("Inventory location con chiave " + merchantLocationKey + " creato correttamente");
|
|
} else {
|
|
resER.setOk(false);
|
|
System.out.println("Errore Inventory location con chiave " + merchantLocationKey + ". status code: " + statusCode);
|
|
resER.setMsg("Errore Inventory location con chiave " + merchantLocationKey + ". status code: " + statusCode);
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
private JSONObject getJsonItemByArticolo(Articolo bean) {
|
|
JSONObject jo = new JSONObject();
|
|
String lang = "it";
|
|
JSONObject availability = new JSONObject();
|
|
JSONObject shipToLocationAvailability = new JSONObject();
|
|
shipToLocationAvailability.put("quantity", bean.getQtaEbayDaInviare());
|
|
availability.put("shipToLocationAvailability", shipToLocationAvailability);
|
|
jo.put("availability", availability);
|
|
if (bean.getFlgUsato() > 0L) {
|
|
jo.put("condition", bean.getStatoUsato().getEbayCondition());
|
|
jo.put("conditionDescription", bean.getStatoUsato().getDescrizione(lang));
|
|
} else {
|
|
jo.put("condition", "NEW");
|
|
}
|
|
JSONObject product = new JSONObject();
|
|
product.put("title", bean.getNomeMarketplace(lang));
|
|
product.put("description", bean.getDescrizioneMarketplace(lang).replace(" ", " "));
|
|
product.put("brand", bean.getMarca().getDescrizione());
|
|
if (!bean.getCodiceProduttore().isEmpty())
|
|
product.put("mpn", bean.getCodiceProduttore());
|
|
if (!bean.getCodiceEan().isEmpty()) {
|
|
String[] eans = { bean.getCodiceEan() };
|
|
product.put("ean", eans);
|
|
}
|
|
JSONObject aspects = new JSONObject();
|
|
String[] Brand = { bean.getMarca().getDescrizione() };
|
|
aspects.put("Marca", Brand);
|
|
Vectumerator<CaratteristicaArticolo> vecCa = bean.getCaratteristicheArticolo();
|
|
while (vecCa.hasMoreElements()) {
|
|
CaratteristicaArticolo rowCa = (CaratteristicaArticolo)vecCa.nextElement();
|
|
String[] val = { rowCa.getVal() };
|
|
aspects.put(rowCa.getCaratteristica().getDescrizione(), val);
|
|
}
|
|
product.put("aspects", aspects);
|
|
ArrayList<String> urlAL = new ArrayList<>();
|
|
for (int i = 1; i < 20; i++) {
|
|
if (bean.isImgExist(i)) {
|
|
String url = bean.getWwwAddressParm() + bean.getWwwAddressParm() + bean.getPathImg();
|
|
urlAL.add(url);
|
|
}
|
|
}
|
|
if (urlAL.size() > 0) {
|
|
String[] arr = urlAL.<String>toArray(new String[urlAL.size()]);
|
|
product.put("imageUrls", arr);
|
|
} else {
|
|
String[] fake = { "https://i2.ebayimg.com/abc/M28/dummy.jpg" };
|
|
product.put("imageUrls", fake);
|
|
}
|
|
jo.put("product", product);
|
|
return jo;
|
|
}
|
|
|
|
public JSONObject bulkUpdatePriceQuantityRest(String l_query) {
|
|
JSONObject res = null;
|
|
return res;
|
|
}
|
|
|
|
public String getCategoryTreeId() {
|
|
String res = "";
|
|
try {
|
|
CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().build();
|
|
HttpGet request = new HttpGet("https://api.ebay.com/commerce/taxonomy/v1_beta/get_default_category_tree_id?marketplace_id=EBAY_IT");
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
HttpResponse resp = closeableHttpClient.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(resp.getEntity());
|
|
int statusCode = resp.getStatusLine().getStatusCode();
|
|
JSONObject jRes = new JSONObject(content);
|
|
return jRes.getString("categoryTreeId");
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
return res;
|
|
}
|
|
}
|
|
|
|
public EbayOrder getEbayOrderRest(String orderId) {
|
|
EbayOrder res = new EbayOrder();
|
|
try {
|
|
CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().build();
|
|
HttpGet request = new HttpGet("https://api.ebay.com/sell/fulfillment/v1/order/{orderId}?".replace("{orderId}", orderId));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
HttpResponse resp = closeableHttpClient.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(resp.getEntity());
|
|
int statusCode = resp.getStatusLine().getStatusCode();
|
|
JSONObject jOrder = new JSONObject(content);
|
|
String buyerId = jOrder.getJSONObject("buyer").getString("username");
|
|
String amount = jOrder.getJSONObject("pricingSummary").getJSONObject("total").getString("value");
|
|
try {
|
|
String buyerTaxId = jOrder.getJSONObject("buyer").getJSONObject("taxIdentifier").getString("taxpayerId");
|
|
String taxIdType = jOrder.getJSONObject("buyer").getJSONObject("taxIdentifier").getString("taxIdentifierType");
|
|
res.setBuyerTaxId(buyerTaxId);
|
|
res.setTaxIdType(taxIdType);
|
|
} catch (Exception e) {}
|
|
res.setBuyerId(buyerId);
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public Vectumerator<EbayOrder> getEbayOrdersRest() {
|
|
Vectumerator<EbayOrder> vec = new Vectumerator();
|
|
try {
|
|
CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().build();
|
|
HttpGet request = new HttpGet("https://api.ebay.com/sell/fulfillment/v1/order?limit=150&offset=0");
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
HttpResponse resp = closeableHttpClient.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(resp.getEntity());
|
|
int statusCode = resp.getStatusLine().getStatusCode();
|
|
if (this.debug)
|
|
System.out.println("Status Code: " + statusCode);
|
|
if (this.debug)
|
|
System.out.println("\ncontent = " + content);
|
|
JSONObject jo = new JSONObject(content);
|
|
JSONArray jOrders = jo.getJSONArray("orders");
|
|
for (int i = 0; i < jOrders.length(); i++) {
|
|
JSONObject jOrder = jOrders.getJSONObject(i);
|
|
String orderId = jOrder.getString("orderId");
|
|
EbayOrder row = getEbayOrderRest(orderId);
|
|
if (this.debug)
|
|
System.out.println(orderId + " " + orderId + " " + row.getBuyerId() + " " + row.getAmount() + " " + row.getTaxIdType());
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
}
|
|
return vec;
|
|
}
|
|
|
|
public EbayResult getSdkEbayOrders() {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
Vector<EbayOrder> res = new Vector<>();
|
|
if (this.debug)
|
|
System.out.println("===== [1] Account Information ====");
|
|
ApiContext apiContext = getApiContext();
|
|
GetOrdersCall call = new GetOrdersCall(apiContext);
|
|
DetailLevelCodeType[] detailLevels = { DetailLevelCodeType.RETURN_ALL };
|
|
call.setDetailLevel(detailLevels);
|
|
call.setOrderRole(TradingRoleCodeType.SELLER);
|
|
call.setNumberOfDays(Integer.valueOf(30));
|
|
if (this.debug)
|
|
System.out.println("getOrders");
|
|
OrderType[] orders = call.getOrders();
|
|
for (OrderType order : orders) {
|
|
EbayOrder row = new EbayOrder();
|
|
row.setBuyerId(order.getBuyerUserID());
|
|
row.setOrderId(order.getOrderID());
|
|
row.setAmount(order.getAmountPaid().getValue());
|
|
TaxIdentifierType[] tit = order.getBuyerTaxIdentifier();
|
|
if (tit.length == 1) {
|
|
TaxIdentifierType ti = tit[0];
|
|
row.setBuyerTaxId(ti.getID());
|
|
row.setTaxIdType(ti.getType().toString());
|
|
}
|
|
if (this.debug) {
|
|
System.out.println(" buyers id: " + row.getBuyerId());
|
|
System.out.println(" order id: " + row.getOrderId());
|
|
System.out.println(" amount: " + row.getAmount());
|
|
System.out.println(" Type: " + row.getTaxIdType());
|
|
try {
|
|
System.out.println(" ID: " + row.getBuyerTaxId());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
if (tit.length > 1) {
|
|
if (this.debug)
|
|
System.out.println();
|
|
for (int i = 1; i < tit.length; i++) {
|
|
TaxIdentifierType ti = tit[i];
|
|
if (this.debug) {
|
|
System.out.println("" + i + " Type: " + i);
|
|
try {
|
|
System.out.println(" ID: " + row.getBuyerTaxId());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
System.out.println();
|
|
}
|
|
}
|
|
}
|
|
res.add(row);
|
|
GetUserCall user = new GetUserCall(apiContext);
|
|
user.setUserID(order.getBuyerUserID());
|
|
if (this.debug)
|
|
System.out.println("--------------------");
|
|
}
|
|
resER.setResult(res);
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
protected String getTokenOath4GetRequest() {
|
|
return "bearer " + getOAuthToken();
|
|
}
|
|
|
|
protected String getBase64OauthCredential() {
|
|
return "Basic " + Base64.getEncoder().encodeToString((getApFull().getParm("EBAY_APPLICATION_ID_PRODUCTION").getTesto() + ":" + getApFull().getParm("EBAY_APPLICATION_ID_PRODUCTION").getTesto())
|
|
.getBytes());
|
|
}
|
|
|
|
public String getSdkEbaySessionId() {
|
|
String res = "";
|
|
try {
|
|
GetSessionIDCall gsi = new GetSessionIDCall(getApiContext());
|
|
gsi.setRuName(getRuName());
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> getEbaySessionId");
|
|
res = gsi.getSessionID();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public String getRuName() {
|
|
return (this.ruName == null) ? "" : this.ruName.trim();
|
|
}
|
|
|
|
public void setRuName(String ruName) {
|
|
this.ruName = ruName;
|
|
}
|
|
|
|
public Date getExpirationDate() {
|
|
return this.expirationDate;
|
|
}
|
|
|
|
public void setExpirationDate(Date exprationDate) {
|
|
this.expirationDate = exprationDate;
|
|
}
|
|
|
|
public ApplParmFull getApFull() {
|
|
return this.apFull;
|
|
}
|
|
|
|
public void setApFull(ApplParmFull apFull) {
|
|
this.apFull = apFull;
|
|
}
|
|
|
|
public String getTokenUsername() {
|
|
return (this.tokenUsername == null) ? "" : this.tokenUsername.trim();
|
|
}
|
|
|
|
public void setTokenUsername(String tokenUsername) {
|
|
this.tokenUsername = tokenUsername;
|
|
}
|
|
|
|
public EbayResult getEbayInventoryItemRest(String l_sku) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> getEbayInventoryItemRest");
|
|
CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().build();
|
|
HttpGet request = new HttpGet("https://api.ebay.com/sell/inventory/v1/inventory_item/{sku}".replace("{sku}", l_sku));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
HttpResponse resp = closeableHttpClient.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(resp.getEntity());
|
|
int statusCode = resp.getStatusLine().getStatusCode();
|
|
if (this.debug) {
|
|
System.out.println("Status Code: " + statusCode);
|
|
System.out.println("\ncontent = " + content);
|
|
}
|
|
JSONObject jo = new JSONObject(content);
|
|
resER.setResult(jo);
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public EbayResult getEbayInventoryItems(int pageNumber, int pageRow) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
Vector<EbayOrder> res = new Vector<>();
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> getEbayInventoryItems " + pageNumber + " " + pageRow);
|
|
ApiContext apiContext = getApiContext();
|
|
GetMyeBaySellingCall call = new GetMyeBaySellingCall(apiContext);
|
|
DetailLevelCodeType[] detailLevels = { DetailLevelCodeType.RETURN_ALL };
|
|
call.setDetailLevel(detailLevels);
|
|
ItemListCustomizationType ilct = new ItemListCustomizationType();
|
|
ilct.setInclude(Boolean.valueOf(true));
|
|
PaginationType pt = new PaginationType();
|
|
pt.setPageNumber(Integer.valueOf(pageNumber));
|
|
pt.setEntriesPerPage(Integer.valueOf(pageRow));
|
|
ilct.setPagination(pt);
|
|
call.setActiveList(ilct);
|
|
call.getMyeBaySelling();
|
|
PaginatedItemArrayType activeItems = call.getReturnedActiveList();
|
|
if (activeItems != null) {
|
|
ItemType[] items = activeItems.getItemArray().getItem();
|
|
if (items.length > 0) {
|
|
resER.setOk(true);
|
|
resER.setResult(items);
|
|
} else {
|
|
resER.setOk(false);
|
|
resER.setMsg("Nessun articolo attivo trovato!!");
|
|
}
|
|
} else {
|
|
resER.setOk(false);
|
|
resER.setMsg("Nessun articolo attivo trovato!!");
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public EbayResult getSdkEbayCategorySuggestion(String l_keyword) {
|
|
EbayResult res = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> getEbayInventoryItemBySku");
|
|
ApiContext apiContext = getApiContext();
|
|
GetSuggestedCategoriesCall call = new GetSuggestedCategoriesCall(apiContext);
|
|
call.setQuery(l_keyword);
|
|
SuggestedCategoryType[] sct = call.getSuggestedCategories();
|
|
if (sct.length > 0) {
|
|
JSONObject jo = new JSONObject();
|
|
jo.put("categoryId", sct[0].getCategory().getCategoryID());
|
|
jo.put("categoryName", sct[0].getCategory().getCategoryName());
|
|
res.setResult(jo);
|
|
} else {
|
|
res.setOk(false);
|
|
res.setMsg("Attenzione! nessun risultato per " + l_keyword);
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
res.setOk(false);
|
|
res.setMsg(e.getMessage());
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public EbayResult getSdkEbayItemIdBySku2(String l_sku) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
Vector<EbayOrder> res = new Vector<>();
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> getEbayInventoryItemBySku2");
|
|
ApiContext apiContext = getApiContext();
|
|
GetItemCall call = new GetItemCall(apiContext);
|
|
DetailLevelCodeType[] detailLevels = { DetailLevelCodeType.RETURN_ALL };
|
|
call.setDetailLevel(detailLevels);
|
|
call.setSKU(l_sku);
|
|
ItemType item = call.getItem();
|
|
if (this.debug)
|
|
System.out.println(item.getDescription());
|
|
resER.setResult(res);
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public EbayResult getSdkEbayItemIdBySku(String l_sku) {
|
|
EbayResult res = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> getEbayInventoryItemBySku");
|
|
ApiContext apiContext = getApiContext();
|
|
GetSellerListCall call = new GetSellerListCall(apiContext);
|
|
DetailLevelCodeType[] detailLevels = { DetailLevelCodeType.RETURN_ALL };
|
|
call.setDetailLevel(detailLevels);
|
|
PaginationType pt = new PaginationType();
|
|
pt.setPageNumber(Integer.valueOf(1));
|
|
pt.setEntriesPerPage(Integer.valueOf(2));
|
|
call.setPagination(pt);
|
|
Calendar calFrom = Calendar.getInstance();
|
|
Calendar calTo = Calendar.getInstance();
|
|
calFrom.add(6, -100);
|
|
calTo.add(6, 1);
|
|
TimeFilter tf = new TimeFilter(calFrom, calTo);
|
|
call.setStartTimeFilter(tf);
|
|
call.setEndTimeFilter(tf);
|
|
call.setUserID(getTokenUsername());
|
|
SKUArrayType sku = new SKUArrayType();
|
|
String[] skuA = { l_sku };
|
|
sku.setSKU(skuA);
|
|
call.setSKUArray(sku);
|
|
ItemType[] items = call.getSellerList();
|
|
if (items.length > 0) {
|
|
res.setResult(items[0].getItemID());
|
|
} else {
|
|
res.setOk(false);
|
|
res.setMsg("Attenzione! " + l_sku + " non trovato");
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
res.setOk(false);
|
|
res.setMsg(e.getMessage());
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public EbayResult getSdkEbayInventoryItemByItemId(String l_itemid) {
|
|
EbayResult res = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> getEbayInventoryItemByItemId");
|
|
ApiContext apiContext = getApiContext();
|
|
GetItemCall call = new GetItemCall(apiContext);
|
|
DetailLevelCodeType[] detailLevels = { DetailLevelCodeType.RETURN_ALL };
|
|
call.setDetailLevel(detailLevels);
|
|
call.setItemID(l_itemid);
|
|
ItemType item = call.getItem();
|
|
if (this.debug)
|
|
System.out.println(item.getTitle());
|
|
res.setResult(item);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
res.setOk(false);
|
|
res.setMsg(e.getMessage());
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public JSONObject getEbayPaymentIdRest(String l_query) {
|
|
JSONObject res = null;
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> getEbayPaymentIdRest");
|
|
CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().build();
|
|
String categoryId = "101";
|
|
HttpGet request = new HttpGet("https://api.ebay.com/commerce/taxonomy/v1/category_tree/{category_tree_id}/get_category_suggestions?q="
|
|
.replace("{category_tree_id}", categoryId) + "https://api.ebay.com/commerce/taxonomy/v1/category_tree/{category_tree_id}/get_category_suggestions?q=".replace("{category_tree_id}", categoryId));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept-Encoding", "application/gzip");
|
|
HttpResponse resp = closeableHttpClient.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(resp.getEntity());
|
|
int statusCode = resp.getStatusLine().getStatusCode();
|
|
JSONObject jo = new JSONObject(content);
|
|
JSONArray jCat = jo.getJSONArray("categorySuggestions");
|
|
if (jCat.length() > 1)
|
|
res = jCat.getJSONObject(0).getJSONObject("category");
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public EbayResult getEbayInventoryItemsRest(int l_limit_1_100, int l_page_number) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
String l_limit, l_page;
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> getEbayInventoryItemsRest");
|
|
CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().build();
|
|
if (l_limit_1_100 < 1 || l_limit_1_100 > 100) {
|
|
l_limit = "10";
|
|
} else {
|
|
l_limit = String.valueOf(l_limit_1_100);
|
|
}
|
|
if (l_page_number < 1) {
|
|
l_page = "1";
|
|
} else {
|
|
l_page = String.valueOf(l_page_number);
|
|
}
|
|
HttpGet request = new HttpGet("https://api.ebay.com/sell/inventory/v1/inventory_item?limit={limit}&offset={offset}".replace("{limit}", l_limit).replace("{offset}", l_page));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
HttpResponse resp = closeableHttpClient.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(resp.getEntity());
|
|
int statusCode = resp.getStatusLine().getStatusCode();
|
|
if (this.debug) {
|
|
System.out.println("Status Code: " + statusCode);
|
|
System.out.println("\ncontent = " + content);
|
|
}
|
|
JSONObject jo = new JSONObject(content);
|
|
resER.setOk(true);
|
|
resER.setResult(jo);
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public EbayResult XXXaddEbayItemX(Articolo bean) {
|
|
EbayResult res = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> addEbayItem ");
|
|
ApiContext apiContext = getApiContext();
|
|
AddItemCall callVI = new AddItemCall(apiContext);
|
|
callVI.setEnableCompression(true);
|
|
callVI.setItem(getEbayItemByArticolo(bean));
|
|
FeesType feesTYpe = callVI.addItem();
|
|
if (this.debug)
|
|
System.out.println(callVI.getErrorHandling().value());
|
|
AddItemCall addItemCall1 = new AddItemCall(apiContext);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
res.setOk(false);
|
|
res.setMsg(e.getMessage());
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public EbayResult getEbayInventoryItemsSellerListCall() {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
Vector<EbayOrder> res = new Vector<>();
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> getEbayInventoryItems");
|
|
ApiContext apiContext = getApiContext();
|
|
GetSellerListCall call = new GetSellerListCall(apiContext);
|
|
DetailLevelCodeType[] detailLevels = { DetailLevelCodeType.RETURN_ALL };
|
|
call.setDetailLevel(detailLevels);
|
|
PaginationType pt = new PaginationType();
|
|
pt.setPageNumber(Integer.valueOf(1));
|
|
pt.setEntriesPerPage(Integer.valueOf(10));
|
|
call.setPagination(pt);
|
|
Calendar calFrom = Calendar.getInstance();
|
|
Calendar calTo = Calendar.getInstance();
|
|
calFrom.add(6, -100);
|
|
calTo.add(6, 1);
|
|
TimeFilter tf = new TimeFilter(calFrom, calTo);
|
|
call.setStartTimeFilter(tf);
|
|
call.setEndTimeFilter(tf);
|
|
call.setUserID(getTokenUsername());
|
|
ItemType[] items = call.getSellerList();
|
|
if (this.debug)
|
|
for (ItemType item : items)
|
|
System.out.println(item.getItemID() + " " + item.getItemID() + " " + item.getSKU());
|
|
resER.setResult(res);
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public EbayResult ebayPublishOffer(Articolo bean) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayPublishOffer");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
HttpPost request = new HttpPost("https://api.ebay.com/sell/inventory/v1/offer/{offerId}/publish/".replace("{offerId}", bean.getEbayOfferId()));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept", "application/json");
|
|
request.setHeader("Content-Type", "application/json");
|
|
request.setHeader("Content-Language", "it-IT");
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(closeableHttpResponse.getEntity());
|
|
int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
if (this.debug) {
|
|
System.out.println("Status Code: " + statusCode);
|
|
System.out.println("\ncontent = " + content);
|
|
}
|
|
JSONObject jo = new JSONObject(content);
|
|
if (statusCode == 400) {
|
|
resER.setOk(false);
|
|
resER.setMsg(jo.toString(2));
|
|
resER.setResult(jo);
|
|
} else {
|
|
resER.setOk(true);
|
|
resER.setResult(jo);
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
private JSONObject getJsonOfferByArticolo(Articolo bean, boolean createOffer) {
|
|
JSONObject jo = new JSONObject();
|
|
String lang = "it";
|
|
if (createOffer) {
|
|
jo.put("sku", bean.getCodice());
|
|
jo.put("marketplaceId", "EBAY_IT");
|
|
jo.put("format", "FIXED_PRICE");
|
|
}
|
|
jo.put("availableQuantity", bean.getQtaEbayDaInviare());
|
|
jo.put("categoryId", bean.getTipo().getEbayCategoryId());
|
|
jo.put("listingDescription", bean.getDescrizioneMarketplace(lang).replace(" ", " "));
|
|
jo.put("merchantLocationKey", Attivita.getDefaultInstance(getApFull()).getEbayMerchantLocationKey());
|
|
JSONObject listingPolicies = new JSONObject();
|
|
listingPolicies.put("fulfillmentPolicyId", Attivita.getDefaultInstance(getApFull()).getEbayFulfillmentPolicyId());
|
|
listingPolicies.put("paymentPolicyId", Attivita.getDefaultInstance(getApFull()).getEbayPaymentPolicyId());
|
|
listingPolicies.put("returnPolicyId", Attivita.getDefaultInstance(getApFull()).getEbayReturnPolicyId());
|
|
jo.put("listingPolicies", listingPolicies);
|
|
JSONObject pricingSummary = new JSONObject();
|
|
JSONObject price = new JSONObject();
|
|
price.put("currency", "EUR");
|
|
price.put("value", bean.getPrezzoArticoloEbayIva().getPrezzoFinale());
|
|
pricingSummary.put("price", price);
|
|
jo.put("pricingSummary", pricingSummary);
|
|
JSONObject tax = new JSONObject();
|
|
tax.put("vatPercentage", bean.getIva().getAliquota());
|
|
jo.put("tax", tax);
|
|
return jo;
|
|
}
|
|
|
|
public EbayResult ebayGetUserConsent(Articolo bean) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayCreateOffer");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
StringBuilder guc = new StringBuilder("https://auth.ebay.com/oauth2/authorize");
|
|
HttpGet request = new HttpGet("https://auth.ebay.com/oauth2/authorize");
|
|
request.setHeader("Authorization", getBase64OauthCredential());
|
|
request.setHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
JSONObject item = getJsonOfferByArticolo(bean, true);
|
|
if (this.debug)
|
|
System.out.println("json ebay offer item v 1:\n" + item.toString(4));
|
|
StringEntity stringEntity = new StringEntity(item.toString(4), "UTF-8");
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(closeableHttpResponse.getEntity());
|
|
int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
if (this.debug) {
|
|
System.out.println("Status Code: " + statusCode);
|
|
System.out.println("\ncontent = " + content);
|
|
}
|
|
if (statusCode >= 400) {
|
|
resER.setOk(false);
|
|
JSONObject jo = new JSONObject(content);
|
|
resER.setMsg(jo.toString(2));
|
|
resER.setResult(jo);
|
|
} else {
|
|
JSONObject jo = new JSONObject(content);
|
|
String offerId = jo.getString("offerId");
|
|
if (offerId.isEmpty()) {
|
|
resER.setOk(false);
|
|
resER.setMsg(jo.toString(4));
|
|
resER.setResult(jo);
|
|
} else {
|
|
bean.setEbayOfferId(offerId);
|
|
bean.superSave();
|
|
resER.setOk(true);
|
|
resER.setResult(jo);
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public EbayResult ebayDeleteOffer(Articolo bean) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayDeleteOffer");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
HttpDelete request = new HttpDelete("https://api.ebay.com/sell/inventory/v1/offer/{offerId}".replace("{offerId}", bean.getEbayOfferId()));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept", "application/json");
|
|
request.setHeader("Content-Type", "application/json");
|
|
request.setHeader("Content-Language", "it-IT");
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
if (this.debug)
|
|
System.out.println("Status Code: " + statusCode);
|
|
if (statusCode >= 400) {
|
|
resER.setOk(false);
|
|
String content = EntityUtils.toString(closeableHttpResponse.getEntity());
|
|
JSONObject jo = new JSONObject(content);
|
|
resER.setMsg(jo.toString(2));
|
|
resER.setResult(jo);
|
|
} else {
|
|
resER.setOk(true);
|
|
bean.setEbayOfferId(null);
|
|
bean.superSave();
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public EbayResult ebayDeleteInventoryItem(Articolo bean) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayDeleteInventoryItem");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
HttpDelete request = new HttpDelete("https://api.ebay.com/sell/inventory/v1/inventory_item/{sku}".replace("{sku}", bean.getCodice()));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept", "application/json");
|
|
request.setHeader("Content-Type", "application/json");
|
|
request.setHeader("Content-Language", "it-IT");
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
if (this.debug)
|
|
System.out.println("Status Code: " + statusCode);
|
|
if (statusCode >= 400) {
|
|
resER.setOk(false);
|
|
resER.setMsg("ebayDeleteInventoryItem: errore cancellazione articolo ebay. Status: " + statusCode);
|
|
} else {
|
|
resER.setOk(true);
|
|
resER.setMsg("ebayDeleteInventoryItem: cancellazione articolo ebay effettuata.");
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public EbayResult ebayUpdateOffer(Articolo bean) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayUpdateOffer");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
HttpPut request = new HttpPut("https://api.ebay.com/sell/inventory/v1/offer/{offerId}".replace("{offerId}", bean.getEbayOfferId()));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept", "application/json");
|
|
request.setHeader("Content-Type", "application/json");
|
|
request.setHeader("Content-Language", "it-IT");
|
|
JSONObject item = getJsonOfferByArticolo(bean, false);
|
|
int versione = getApFull().getParm("VEBAY").getNumeroInt();
|
|
if (this.debug)
|
|
System.out.println("ebayUpdateOffer versione VEBAY " + versione);
|
|
versione = 1;
|
|
if (versione == 0) {
|
|
String rawString = item.toString(4);
|
|
byte[] bytes = StringUtils.getBytesUtf8(rawString);
|
|
String utf8EncodedString = StringUtils.newStringUtf8(bytes);
|
|
if (this.debug)
|
|
System.out.println("json ebay item v0 UTF8:\n" + utf8EncodedString);
|
|
StringEntity stringEntity = new StringEntity(utf8EncodedString);
|
|
request.setEntity((HttpEntity)stringEntity);
|
|
} else if (versione == 1) {
|
|
if (this.debug)
|
|
System.out.println("json ebay item v 1:\n" + item.toString(4));
|
|
StringEntity stringEntity = new StringEntity(item.toString(4), "UTF-8");
|
|
request.setEntity((HttpEntity)stringEntity);
|
|
} else if (versione == 2) {
|
|
if (this.debug)
|
|
System.out.println("json ebay item v 2:\n" + String.valueOf(item.toString(4).getBytes("UTF-8")));
|
|
ByteArrayEntity byteArrayEntity = new ByteArrayEntity(item.toString(4).getBytes("UTF-8"));
|
|
request.setEntity((HttpEntity)byteArrayEntity);
|
|
}
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(closeableHttpResponse.getEntity());
|
|
int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
if (this.debug) {
|
|
System.out.println("Status Code: " + statusCode);
|
|
System.out.println("\ncontent = " + content);
|
|
}
|
|
if (statusCode >= 400) {
|
|
resER.setOk(false);
|
|
JSONObject jo = new JSONObject(content);
|
|
resER.setMsg(jo.toString(2));
|
|
resER.setResult(jo);
|
|
} else {
|
|
JSONObject jo = new JSONObject(content);
|
|
bean.setPrezzoSuEbayIva(bean.getPrezzoArticoloEbayIva().getPrezzoFinale());
|
|
bean.setQtaSuEbay(bean.getQtaEbayDaInviare());
|
|
bean.superSave();
|
|
resER.setOk(true);
|
|
resER.setResult(jo);
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public EbayResult ebayGetOffer(Articolo bean) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayCreateOffer");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
HttpGet request = new HttpGet("https://api.ebay.com/sell/inventory/v1/offer/{offerId}".replace("{offerId}", bean.getEbayOfferId()));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept", "application/json");
|
|
request.setHeader("Content-Type", "application/json");
|
|
request.setHeader("Content-Language", "it-IT");
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(closeableHttpResponse.getEntity());
|
|
int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
if (this.debug) {
|
|
System.out.println("Status Code: " + statusCode);
|
|
System.out.println("\ncontent = " + content);
|
|
}
|
|
if (statusCode >= 400) {
|
|
resER.setOk(false);
|
|
JSONObject jo = new JSONObject(content);
|
|
resER.setMsg(jo.toString(2));
|
|
resER.setResult(jo);
|
|
} else {
|
|
JSONObject jo = new JSONObject(content);
|
|
String offerId = jo.getString("offerId");
|
|
if (offerId.isEmpty()) {
|
|
resER.setOk(false);
|
|
resER.setMsg(jo.toString(4));
|
|
resER.setResult(jo);
|
|
} else {
|
|
JSONObject listing = jo.getJSONObject("listing");
|
|
bean.setEbayItemId(listing.getString("listingId"));
|
|
bean.superSave();
|
|
resER.setOk(true);
|
|
resER.setResult(jo);
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public Attivita getAttivita() {
|
|
if (this.attivita == null)
|
|
this.attivita = Attivita.getDefaultInstance(getApFull());
|
|
return this.attivita;
|
|
}
|
|
|
|
public String getUriRuName() {
|
|
return getApFull().getParm("EBAY_RU_NAME_PRODUCTION").getTesto();
|
|
}
|
|
|
|
public EbayResult ebayRefreshUserAccesToken() {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayRefreshUserAccesToken");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
if (this.debug)
|
|
System.out.println("aa: " + URLEncoder.encode("https://api.ebay.com/oauth/api_scope https://api.ebay.com/oauth/api_scope/sell.marketing.readonly https://api.ebay.com/oauth/api_scope/sell.marketing https://api.ebay.com/oauth/api_scope/sell.inventory.readonly https://api.ebay.com/oauth/api_scope/sell.inventory https://api.ebay.com/oauth/api_scope/sell.account.readonly https://api.ebay.com/oauth/api_scope/sell.account https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly https://api.ebay.com/oauth/api_scope/sell.fulfillment https://api.ebay.com/oauth/api_scope/sell.analytics.readonly https://api.ebay.com/oauth/api_scope/sell.finances https://api.ebay.com/oauth/api_scope/sell.payment.dispute https://api.ebay.com/oauth/api_scope/commerce.identity.readonly", "UTF-8"));
|
|
HttpPost request = new HttpPost("https://api.ebay.com/identity/v1/oauth2/token");
|
|
request.setHeader("Authorization", getBase64OauthCredential());
|
|
request.setHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
String requestBody = "grant_type=refresh_token&refresh_token=" + getAttivita().getEbayOAuthRefreshToken() + "&scope=" +
|
|
URLEncoder.encode("https://api.ebay.com/oauth/api_scope https://api.ebay.com/oauth/api_scope/sell.marketing.readonly https://api.ebay.com/oauth/api_scope/sell.marketing https://api.ebay.com/oauth/api_scope/sell.inventory.readonly https://api.ebay.com/oauth/api_scope/sell.inventory https://api.ebay.com/oauth/api_scope/sell.account.readonly https://api.ebay.com/oauth/api_scope/sell.account https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly https://api.ebay.com/oauth/api_scope/sell.fulfillment https://api.ebay.com/oauth/api_scope/sell.analytics.readonly https://api.ebay.com/oauth/api_scope/sell.finances https://api.ebay.com/oauth/api_scope/sell.payment.dispute https://api.ebay.com/oauth/api_scope/commerce.identity.readonly", "UTF-8");
|
|
StringEntity stringEntity = new StringEntity(requestBody, "UTF-8");
|
|
request.setEntity((HttpEntity)stringEntity);
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
String content = EntityUtils.toString(closeableHttpResponse.getEntity());
|
|
if (this.debug) {
|
|
System.out.println("Status Code: " + statusCode);
|
|
System.out.println("\ncontent = " + content);
|
|
}
|
|
if (statusCode == 200) {
|
|
JSONObject jo = new JSONObject(content);
|
|
getAttivita().setEbayOAuthUserToken(jo.getString("access_token"));
|
|
Calendar cal = Calendar.getInstance();
|
|
cal.add(13, jo.getInt("expires_in"));
|
|
getAttivita().setEbayOAuthUserTokenExpire(new Timestamp(cal.getTimeInMillis()));
|
|
ResParm rp = getAttivita().save();
|
|
resER.setOk(rp.getStatus());
|
|
resER.setMsg(rp.getMsg());
|
|
resER.setResult(jo);
|
|
} else {
|
|
resER.setOk(false);
|
|
JSONObject jo = new JSONObject(content);
|
|
resER.setMsg(jo.toString(2));
|
|
resER.setResult(jo);
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public EbayResult ebayGetUserAccesToken(String authorizationCode) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayGetUserAccesToken");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
HttpPost request = new HttpPost("https://api.ebay.com/identity/v1/oauth2/token");
|
|
request.setHeader("Authorization", getBase64OauthCredential());
|
|
request.setHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
String requestBody = "grant_type=authorization_code&code=" + authorizationCode + "&redirect_uri=" + getUriRuName();
|
|
StringEntity stringEntity = new StringEntity(requestBody, "UTF-8");
|
|
request.setEntity((HttpEntity)stringEntity);
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
String content = EntityUtils.toString(closeableHttpResponse.getEntity());
|
|
if (this.debug) {
|
|
System.out.println("Status Code: " + statusCode);
|
|
System.out.println("\ncontent = " + content);
|
|
}
|
|
if (statusCode == 200) {
|
|
JSONObject jo = new JSONObject(content);
|
|
getAttivita().setEbayOAuthUserToken(jo.getString("access_token"));
|
|
Calendar cal = Calendar.getInstance();
|
|
cal.add(13, jo.getInt("expires_in"));
|
|
getAttivita().setEbayOAuthUserTokenExpire(new Timestamp(cal.getTimeInMillis()));
|
|
getAttivita().setEbayOAuthRefreshToken(jo.getString("refresh_token"));
|
|
cal = Calendar.getInstance();
|
|
cal.add(13, jo.getInt("refresh_token_expires_in"));
|
|
getAttivita().setEbayOAuthRefreshTokenExpire(new Timestamp(cal.getTimeInMillis()));
|
|
ResParm rp = getAttivita().save();
|
|
resER.setOk(rp.getStatus());
|
|
resER.setMsg(rp.getMsg());
|
|
resER.setResult(jo);
|
|
} else {
|
|
resER.setOk(false);
|
|
JSONObject jo = new JSONObject(content);
|
|
resER.setMsg(jo.toString(2));
|
|
resER.setResult(jo);
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public String getOAuthToken() {
|
|
if (getAttivita().isEbayOAuthUserTokenExpired()) {
|
|
if (getAttivita().isEbayOAuthRefreshTokenExpired())
|
|
return "";
|
|
EbayResult eRes = ebayRefreshUserAccesToken();
|
|
if (eRes.isOk() && !getAttivita().isEbayOAuthUserTokenExpired())
|
|
return getAttivita().getEbayOAuthUserToken();
|
|
getAttivita().setEbayOAuthRefreshToken(null);
|
|
getAttivita().setEbayOAuthRefreshTokenExpire(null);
|
|
getAttivita().superSave();
|
|
return "";
|
|
}
|
|
return getAttivita().getEbayOAuthUserToken();
|
|
}
|
|
|
|
public boolean isOAuthTokenValid() {
|
|
return !getOAuthToken().isEmpty();
|
|
}
|
|
|
|
public EbayResult ebayGetCategorySuggestion(String l_query) {
|
|
EbayResult res = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> getEbayCategorySuggestionRest");
|
|
CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().build();
|
|
String categoryId = "101";
|
|
HttpGet request = new HttpGet("https://api.ebay.com/commerce/taxonomy/v1/category_tree/{category_tree_id}/get_category_suggestions?q="
|
|
.replace("{category_tree_id}", categoryId) + "https://api.ebay.com/commerce/taxonomy/v1/category_tree/{category_tree_id}/get_category_suggestions?q=".replace("{category_tree_id}", categoryId));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept-Encoding", "application/gzip");
|
|
HttpResponse resp = closeableHttpClient.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(resp.getEntity());
|
|
int statusCode = resp.getStatusLine().getStatusCode();
|
|
if (statusCode == 200) {
|
|
JSONObject jo = new JSONObject(content);
|
|
JSONArray jCat = jo.getJSONArray("categorySuggestions");
|
|
if (jCat.length() > 1) {
|
|
res.setOk(true);
|
|
res.setResult(jCat.getJSONObject(0).getJSONObject("category"));
|
|
} else {
|
|
res.setOk(false);
|
|
}
|
|
} else {
|
|
res.setMsg(content);
|
|
res.setOk(false);
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
res.setMsg(e.getMessage());
|
|
res.setOk(false);
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public EbayResult ebayCreateOrReplaceInventoryItem(Articolo bean) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayCreateOrReplaceInventoryItem");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
HttpPut request = new HttpPut("https://api.ebay.com/sell/inventory/v1/inventory_item/{sku}".replace("{sku}", bean.getCodice()));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept", "application/json");
|
|
request.setHeader("Content-Type", "application/json");
|
|
request.setHeader("Content-Language", "it-IT");
|
|
JSONObject item = getJsonItemByArticolo(bean);
|
|
int versione = getApFull().getParm("VEBAY").getNumeroInt();
|
|
if (this.debug)
|
|
System.out.println("Createebay versione VEBAY " + versione);
|
|
versione = 1;
|
|
if (versione == 0) {
|
|
String rawString = item.toString(4);
|
|
byte[] bytes = StringUtils.getBytesUtf8(rawString);
|
|
String utf8EncodedString = StringUtils.newStringUtf8(bytes);
|
|
if (this.debug)
|
|
System.out.println("json ebay item v0 UTF8:\n" + utf8EncodedString);
|
|
StringEntity stringEntity = new StringEntity(utf8EncodedString);
|
|
request.setEntity((HttpEntity)stringEntity);
|
|
} else if (versione == 1) {
|
|
if (this.debug)
|
|
System.out.println("json ebay item v 1:\n" + item.toString(4));
|
|
StringEntity stringEntity = new StringEntity(item.toString(4), "UTF-8");
|
|
request.setEntity((HttpEntity)stringEntity);
|
|
} else if (versione == 2) {
|
|
if (this.debug)
|
|
System.out.println("json ebay item v 2:\n" + String.valueOf(item.toString(4).getBytes("UTF-8")));
|
|
ByteArrayEntity byteArrayEntity = new ByteArrayEntity(item.toString(4).getBytes("UTF-8"));
|
|
request.setEntity((HttpEntity)byteArrayEntity);
|
|
}
|
|
int statusCode = 200;
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
if (statusCode == 200) {
|
|
resER.setOk(true);
|
|
resER.setMsg("Oggetto ebay aggiornato correttamente");
|
|
if (this.debug)
|
|
System.out.println("Oggetto ebay aggiornato correttamente");
|
|
} else if (statusCode == 201) {
|
|
resER.setOk(true);
|
|
resER.setMsg("Oggetto ebay creato correttamente");
|
|
if (this.debug)
|
|
System.out.println("Oggetto ebay creato correttamente");
|
|
} else if (statusCode == 204) {
|
|
resER.setOk(true);
|
|
resER.setMsg("Oggetto ebay non modificato");
|
|
if (this.debug)
|
|
System.out.println("Oggetto ebay non modificato");
|
|
} else {
|
|
resER.setOk(false);
|
|
System.out.println("Oggetto ebay NON CREATO/AGGIORNATO: status code: " + statusCode);
|
|
resER.setMsg("Oggetto ebay NON CREATO/AGGIORNATO: status code: " + statusCode);
|
|
}
|
|
if (resER.isOk()) {
|
|
bean.setPrezzoSuEbayIva(bean.getPrezzoArticoloEbayIva().getPrezzoFinale());
|
|
bean.setQtaSuEbay(bean.getQtaEbayDaInviare());
|
|
bean.superSave();
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
private JSONObject getJsonInventoryLocation(String merchantLocationKey) {
|
|
JSONObject jo = new JSONObject();
|
|
jo.put("name", merchantLocationKey + "-location");
|
|
jo.put("merchantLocationKey", merchantLocationKey);
|
|
jo.put("merchantLocationStatus", "ENABLED");
|
|
String[] locationTypesARR = { "WAREHOUSE" };
|
|
jo.put("locationTypes", locationTypesARR);
|
|
JSONObject location = new JSONObject();
|
|
JSONObject address = new JSONObject();
|
|
address.put("addressLine1", getAttivita().getIndirizzoAttivita() + ", " + getAttivita().getIndirizzoAttivita());
|
|
address.put("city", getAttivita().getDescrizioneComuneAttivita());
|
|
address.put("stateOrProvince", getAttivita().getDescrizioneProvinciaAttivita());
|
|
address.put("postalCode", getAttivita().getCapComuneAttivita());
|
|
address.put("country", "IT");
|
|
location.put("address", address);
|
|
jo.put("location", location);
|
|
return jo;
|
|
}
|
|
|
|
public EbayResult ebayGetReturnPolicy() {
|
|
EbayResult res = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayGetPaymentPolicy");
|
|
CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().build();
|
|
HttpGet request = new HttpGet("https://api.ebay.com/sell/account/v1/return_policy?marketplace_id=EBAY_IT");
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept-Encoding", "application/gzip");
|
|
HttpResponse resp = closeableHttpClient.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(resp.getEntity());
|
|
int statusCode = resp.getStatusLine().getStatusCode();
|
|
String defaultPolycyId = "";
|
|
if (statusCode == 200) {
|
|
JSONObject jo = new JSONObject(content);
|
|
JSONArray joArr = jo.getJSONArray("returnPolicies");
|
|
for (int i = 0; i < joArr.length(); i++) {
|
|
JSONObject row = joArr.getJSONObject(i);
|
|
JSONArray categoryTypes = row.getJSONArray("categoryTypes");
|
|
if (categoryTypes.length() > 0) {
|
|
JSONObject categoryType = categoryTypes.getJSONObject(0);
|
|
if (categoryType.getBoolean("default")) {
|
|
defaultPolycyId = row.getString("returnPolicyId");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (!defaultPolycyId.isEmpty()) {
|
|
res.setOk(true);
|
|
res.setResult(defaultPolycyId);
|
|
res.setMsg("Trovata returnPolicyId di default: " + defaultPolycyId);
|
|
} else {
|
|
res.setMsg("Impossibile trovare returnPolicyId di default.\nCollegati al tuo account ebay:\nimpostazioni account --> \nPreferenze account: impostazioni --> \nGestore delle regole di vendita --> \nCrea regola Restituzione");
|
|
res.setOk(false);
|
|
}
|
|
} else {
|
|
res.setMsg(content);
|
|
res.setOk(false);
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
res.setMsg(e.getMessage());
|
|
res.setOk(false);
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public EbayResult ebayGetPaymentPolicy() {
|
|
EbayResult res = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayGetPaymentPolicy");
|
|
CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().build();
|
|
HttpGet request = new HttpGet("https://api.ebay.com/sell/account/v1/payment_policy?marketplace_id=EBAY_IT");
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept-Encoding", "application/gzip");
|
|
HttpResponse resp = closeableHttpClient.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(resp.getEntity());
|
|
int statusCode = resp.getStatusLine().getStatusCode();
|
|
String defaultPolycyId = "";
|
|
if (statusCode == 200) {
|
|
JSONObject jo = new JSONObject(content);
|
|
JSONArray joArr = jo.getJSONArray("paymentPolicies");
|
|
for (int i = 0; i < joArr.length(); i++) {
|
|
JSONObject row = joArr.getJSONObject(i);
|
|
JSONArray categoryTypes = row.getJSONArray("categoryTypes");
|
|
if (categoryTypes.length() > 0) {
|
|
JSONObject categoryType = categoryTypes.getJSONObject(0);
|
|
if (categoryType.getBoolean("default")) {
|
|
defaultPolycyId = row.getString("paymentPolicyId");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (!defaultPolycyId.isEmpty()) {
|
|
res.setOk(true);
|
|
res.setResult(defaultPolycyId);
|
|
res.setMsg("Trovata paymentPolicyId di default: " + defaultPolycyId);
|
|
} else {
|
|
res.setMsg("Impossibile trovare paymentPolicyId di default.\nCollegati al tuo account ebay:\nimpostazioni account --> \nPreferenze account: impostazioni --> \nGestore delle regole di vendita --> \nCrea regola Pagamento");
|
|
res.setOk(false);
|
|
}
|
|
} else {
|
|
res.setMsg(content);
|
|
res.setOk(false);
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
res.setMsg(e.getMessage());
|
|
res.setOk(false);
|
|
}
|
|
return res;
|
|
}
|
|
|
|
public EbayResult ebayGetOfferPrice(Articolo bean) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayGetOfferPrice");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
HttpGet request = new HttpGet("https://api.ebay.com/sell/inventory/v1/offer/{offerId}".replace("{offerId}", bean.getEbayOfferId()));
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept", "application/json");
|
|
request.setHeader("Content-Type", "application/json");
|
|
request.setHeader("Content-Language", "it-IT");
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(closeableHttpResponse.getEntity());
|
|
int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
if (this.debug) {
|
|
System.out.println("Status Code: " + statusCode);
|
|
System.out.println("\ncontent = " + content);
|
|
}
|
|
if (statusCode >= 400) {
|
|
resER.setOk(false);
|
|
JSONObject jo = new JSONObject(content);
|
|
resER.setMsg(jo.toString(2));
|
|
resER.setResult(jo);
|
|
} else {
|
|
JSONObject jo = new JSONObject(content);
|
|
try {
|
|
JSONObject price = jo.getJSONObject("pricingSummary").getJSONObject("price");
|
|
bean.setPrezzoSuEbayIva(price.getDouble("value"));
|
|
bean.superSave();
|
|
resER.setOk(true);
|
|
resER.setResult(jo);
|
|
} catch (Exception e) {
|
|
resER.setOk(false);
|
|
resER.setMsg(jo.toString(4));
|
|
resER.setResult(jo);
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
|
|
public EbayResult ebayCreateOffer(Articolo bean) {
|
|
EbayResult resER = new EbayResult();
|
|
try {
|
|
if (this.debug)
|
|
System.out.println("AbliaEbayApi --> ebayCreateOffer");
|
|
CloseableHttpClient client = HttpClients.createDefault();
|
|
HttpPost request = new HttpPost("https://api.ebay.com/sell/inventory/v1/offer");
|
|
request.setHeader("Authorization", getTokenOath4GetRequest());
|
|
request.setHeader("Accept", "application/json");
|
|
request.setHeader("Content-Type", "application/json");
|
|
request.setHeader("Content-Language", "it-IT");
|
|
JSONObject item = getJsonOfferByArticolo(bean, true);
|
|
if (this.debug)
|
|
System.out.println("json ebay offer item v 1:\n" + item.toString(4));
|
|
StringEntity stringEntity = new StringEntity(item.toString(4), "UTF-8");
|
|
request.setEntity((HttpEntity)stringEntity);
|
|
CloseableHttpResponse closeableHttpResponse = client.execute((HttpUriRequest)request);
|
|
String content = EntityUtils.toString(closeableHttpResponse.getEntity());
|
|
int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
|
|
if (this.debug) {
|
|
System.out.println("Status Code: " + statusCode);
|
|
System.out.println("\ncontent = " + content);
|
|
}
|
|
if (statusCode >= 400) {
|
|
resER.setOk(false);
|
|
JSONObject jo = new JSONObject(content);
|
|
resER.setMsg(jo.toString(2));
|
|
resER.setResult(jo);
|
|
} else {
|
|
JSONObject jo = new JSONObject(content);
|
|
String offerId = jo.getString("offerId");
|
|
if (offerId.isEmpty()) {
|
|
resER.setOk(false);
|
|
resER.setMsg(jo.toString(4));
|
|
resER.setResult(jo);
|
|
} else {
|
|
bean.setEbayOfferId(offerId);
|
|
bean.setPrezzoSuEbayIva(bean.getPrezzoArticoloEbayIva().getPrezzoFinale());
|
|
bean.setQtaSuEbay(bean.getQtaEbayDaInviare());
|
|
bean.superSave();
|
|
resER.setOk(true);
|
|
resER.setResult(jo);
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
e.printStackTrace();
|
|
resER.setOk(false);
|
|
resER.setMsg(e.getMessage());
|
|
}
|
|
return resER;
|
|
}
|
|
}
|