Regalamiunsorriso/decompiled-libs/www/acxent-common-1.0.1/it/acxent/api/ebay/EbayAbliaApi.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("&nbsp;", " "));
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("&nbsp;", " "));
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;
}
}