Qui troverete le risposte alle domande più frequenti.
Recentemente, abbiamo rilevato il seguente bug: Permettiamo di impostare il parametro "IsDeliveryFree" su TRUE quando l'opzione di spedizione scelta è "ritiro dal compratore"". uesto porta al problema che l'articolo viene promosso come "freeShipping" quando non dovrebbe. Inoltre è ora possibile impostare "freeShipping" per "consegna da parte del venditore".
Per risolvere questo problema senza rompere le applicazioni del cliente, abbiamo dovuto re-implementare alcuni metodi API con la corretta logica di business. Dopo il 27.08.2015 il vecchio metodo non sarà più disponibile.
Old method | New method |
InsertArticle | CreateArticle |
InsertArticles | CreateArticles |
UpdatePlannedArticle | ModifyPlannedArticle |
RelistArticle | RepublishArticle |
RelistArticleWithoutModification | RepublishArticleWithoutModification |
RelistArticlesWithoutModification | RepublishArticlesWithoutModification |
RelistArticles | RepublishArticles |
InsertPreviewConvertedClassified | CreatePreviewConvertedClassified |
UpdateArticle | ModifyArticle |
Risposta: Questo perché avete fatto riferimento ai nostri servizi Web come "riferimenti Web" invece di "riferimenti ai servizi", e perché il vostro progetto si rivolge a .NET Framework 2.0 invece di almeno .NET Framework 3.0, a cui è stato aggiunto il WCF (vedi differenze). Per essere ancora più precisi, il cliente che si dovrebbe generare le eredità da System.ServiceModel.ClientBase, e quindi avrà la proprietà ClientCredential.
Risposta: Ciò potrebbe essere dovuto a un disallineamento contrattuale (azione non corrispondente tra mittente e ricevente) o un disallineamento vincolante/sicurezza tra il mittente e il ricevente. Verificare che il mittente e il destinatario abbiano lo stesso contratto e lo stesso vincolo (compresi i requisiti di sicurezza, ad esempio Messaggio, Trasporto, Nessuno).
SOAP Example
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_ISecurityService" maxReceivedMessageSize="20971520">
<readerQuotas maxStringContentLength="5242880" maxArrayLength="20971520"/>
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message establishSecurityContext="False" clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://ws.ricardo.ch/RicardoApi/SecurityService.Soap.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISecurityService"
contract="SecurityServiceSoapReference.ISecurityService" name="WSHttpBinding_ISecurityService" />
</client>
</system.serviceModel>
..... e la stringa JSON ricevuta appare così:
{
"ErrorCodes": null,
"ErrorCodesType": "Technical",
"ErrorType": "System.NullReferenceException"
}
Risposta : Questo probabilmente perché si sta omettendo il parametro "parent" del metodo che si sta tentando di chiamare. Per esempio, con il metodo Login (in Security Service), il seguente contenuto JSON non è corretto:
{"Login":"YOUR_LOGIN","Password":"YOUR_PASSWORD"}
La sintassi corretta è:
{"loginParameter":{"Login":"YOUR_LOGIN","Password":"YOUR_PASSWORD"}}
Risposta: L'ampio elenco di metodi con questo commento è:
- SellService.InsertArticles
- SellService.InsertClassifieds
- SellService.RelistArticlesWithoutModification
- SellService.RelistClassifiedsWithoutModification
- SellService.RelistArticles
- SellService.RelistClassifieds
Questi metodi sono stati implementati leggermente rapidamente per uso interno. Quindi non sono stati ottimizzati per i nostri utenti terzi. Questi metodi probabilmente si evolveranno con cambiamenti di rottura (modifica dell'oggetto parametro atteso), e quindi vi scoraggiamo fortemente dall'usarli. Ma se volete (o avete bisogno di usarli, dovrete generare un token antiforgery per ogni articolo dell'array (e non un solo token antiforgery per l'intera richiesta, come dovrebbe essere).
Poiché non è possibile inserire articoli C&B utilizzando l'API ricardo.ch (ad eccezione degli accessori, che è possibile in un'altra categoria), si consiglia vivamente di escludere le categorie C&B.
In ISystemService il metodo GetCategories permette di filtrare per
- tutte le categori
- solo le categorie C&B
- tutte le categorie tranne C&B
Per filtrare usare CategoryBrandingFilter.