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
TRAMITE Get a User Token Here + Auth'n'Auth
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
TRAMITE Get a User Token Here + Auth'n'Auth
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^H4sIAAAAAAAAAOVYbWwURRju9QsJLfCDFCxijgNiAu7d7N7ex27ag6O9SgNtj15bKwHK3O5cmbK3u+zMtb0GSVNJQ4xUiQYJUQI/EBslERViSEzEiH+IRrGYANFEMUHLDxMhYqIJzl6/q3y0R8wl3p/LvPN+Pc+878zsgN7iuav7N/TfKXXMyT/WC3rzHQ5+HphbXLRmfkF+eVEemKTgONa7srewr+DnCgKTmik3ImIaOkHO7qSmEzkjrHSlLF02IMFE1mESEZkqcixct0kW3EA2LYMaiqG5nLXVla6gwAuqXwxKfi9QeUlgUn3MZ5NR6RLiPoBEKQGleDAgeiU2T0gK1eqEQp2yeSAAjgec4G0SBJn3yT6/2+fzbXE5W5BFsKEzFTdwhTLpyhlba1Ku908VEoIsypy4QrXhmlhDuLY6Ut9U4ZnkKzTKQ4xCmiJTR1WGipwtUEuh+4chGW05llIURIjLExqJMNWpHB5LZhbpZ6hGisCLgEdAlPwBv6g8EiprDCsJ6f3zsCVY5RIZVRnpFNP0gxhlbMQ7kEJHR/XMRW210/7bnIIaTmBkVboi68PPNccijS5nLBq1jE6sItVGyvt44JckAERXCMY1DImljcYYcTTK8LQgVYauYpsv4qw36HrEEkbTaQGTaGFKDXqDFU5QO5lxPbEJgDH6RGmLvZ4jC5iiO3V7SVGSceDMDB9M/lg1TKz/o6oHnveDgD/uk/wwIAX5+L/Xg93rM6uJkL0s4WjUY+eC4jDNJaG1C1FTgwriFEZvKoksrMpeX0LwBhOIU/1SgmNNnuDiPtXP8QmEAELxuCIF/yelQamF4ymKxstj+kQGX6VLM9qxXofoTkN1TVfJ7DSjxdBNKl07KTVlj6erq8vd5XUbVrtHAID3tNZtiik7URK6xnXxg5U5nCkLBTErgmWaNlk23azqWHC93RWyua6tHivVKSmFpkvvgS2mGCaKGhpW0rmFzWupUWjRdAxpGhNkBZLYIHMLnm1PmANo2r2O3XbLuhUj6TEg26KYGLdlsnZOKN5byUMYSe6Rhmfe3RaCqqFr6dkYz8AG652saQwrPZuA48YzsIGKYqR0Optwo6YzsEiktATWNHtfmE3ASeYzSVOHWppihcwqJNbtiiMzMDFhOgNQxcS0++WhLJmMnSUKcrP9PXOvGE82qy61kIottvu3pSycW80ats+stpjbcmtuLjOIWRpHU5QaCU7txl3t3Q+H3O71e6APm2Ztjh0v05AalIs2VnOKfZ/1QyBxAcBDHsX5rFa9GnXmGm4UECRFAAFOCogSJ6qSysWDQYEDol8NBhO8KPrErDBjSHMLMbuUekWJ92aJy94xZAwTMjV2Ib0pnWuHbmOkpjES29DW1LAxUp/dtQkpFrr/IrJeP/SfI9zV6W1ujASlNbFqGGlMNGxoiW+UaqtgdTJlChujSldLpCda02Ptbq+rzIoAe7tKJlOUXedRrvWvIPC8lF0l17XjXAPFPmeA6BWkIABCVtiqNMyO7dzrzg0GoUh9WGjTBJO+4f7x5e6Z+moWysv8+D7HGdDnOJ3vcAAPWMWvAMuLC5oLC0rKCabsbgMTboLbdUhTFnLvQmkTYiu/2GE2w+FVk97pjm0DS8Zf6uYW8PMmPduBJyZmivgFi0sFwAPBy+rT5/NvASsmZgv5ssJFznBr85LeG1cHXrPm3t2PF97YUb4AlI4rORxFeYV9jrySk1aQPNZzYZ1Jtq14ZbDp+EdDp4+UlfQs/vYgPXr6G+P9tLtsX9V7AbJ0YPeZ3cUtpW8NL0lW/Ppl2apWxZtX82T/d8vmHf94WP+scsfR1sNvNL/9+ImnTha9qi37/ZnB3nOrTxVfDNy8RF56XRtYfKvv6kXv2d7Qm59oh+a8O/DCFbNx7YeHby18/vxy8fsvmot/irYOzb993p9/5Men62Pl4QLz/KWjlyv+cvj7r1/uGNqxdOWmH/68e/3igcN/bN96oS7+Tske3HSno1X+4GD7uUW/Db3ccaVocPPnB9c+23l164n95Nq62C9GhRzat/fmavHTNS9WpfMGT+35evuBtXtv89duDxfUfaWeHVm+vwEIbnSVQRUAAA=="; 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 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.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 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 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.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 getEbayOrdersRest() { Vectumerator 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 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 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 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 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; } }