Document d'accès au service Platform Technology-SPI


Qu'est-ce que SPI

  • Interface du fournisseur de services
    • API : La plateforme fournit l'interface et l'implémente, vous l'appelez
    • SPI : La plateforme fournit le standard, vous l'implémentez, il peut y avoir plusieurs implémentations

image

Processus de règlement SPI

image

Ce que vous devez faire, c'est le travail dans la troisième case.

Scénario commercial d'application

Tout d'abord, vous devez disposer d'une application avec le label « Application tierce ». Cliquez ici pour postuler.

Une fois l'application réussie, entrez dans la console de l'application et vous verrez le menu « Fournisseur de services API »

image

Remarque : vous pouvez voir l'AppKey et l'AppSecret de l'application actuelle dans l'aperçu.

  • AppKey : elle a deux fonctions.
    • Une fois que le propriétaire de la scène (la personne qui vous présente SPI) a lié cette AppKey à la scène, vous aurez les droits de développement d'une certaine scène. scène.
    • L'appelant SPI doit remplir cette AppKey dans TargetAppkey pour transférer vers le service que vous avez implémenté ;
  • AppSecret : lorsque la plateforme ouverte (TOP) appelle le service que vous avez implémenté, elle signera le message (voir la signature associée pour plus de détails) ) chapitre). Cette clé est utilisée lors de la signature. Vous devez utiliser cette clé pour la vérification de la signature.

Prenons la scène « météo » comme exemple. Lorsque le propriétaire de la scène lie cette scène à votre AppKey, vous pouvez voir la scène « météo » sur cette page.

Le statut de la scène à l'heure actuelle est "en cours de développement". En plus de ce statut, la scène possède également plusieurs statuts tels que « en ligne et en cours d'exécution » et « en cours de mise à niveau ».

  • « En cours de développement » vers « En ligne et en cours d'exécution » : la demande de publication a été approuvée.
  • « En ligne et en cours d'exécution » vers « Mise à niveau » : cliquez pour accéder à la mise à niveau et cliquez sur n'importe quelle API pour mettre à niveau la version ; En cliquant sur « Annuler la mise à niveau » ou en demandant une libération et en réussissant l'examen, vous reviendrez à « En ligne et en cours d'exécution ».

image

Après être entré dans la scène, vous pouvez voir toutes les API à implémenter dans la scène, comme le montre l'image ci-dessous.

image

Pendant ce temps, à côté de la scène se trouve son état actuel.

Lisez la documentation

Assurez-vous de lire attentivement la documentation avant de développer. Après avoir cliqué sur "Développer la documentation", vous pouvez voir l'image ci-dessous.

image

Veuillez développer en stricte conformité avec la documentation, en accordant une attention particulière à :

  • Méthode de requête : POST ou GET ;
  • Encodage de la requête : UTF-8 ou GBK
  • Les paramètres de requête publique, les paramètres de requête métier et les paramètres de réponse doivent être totalement cohérents avec le document. Pour la valeur de retour, veuillez vous référer à l'exemple de retour ;
  • Gestion des exceptions : renvoyez les champs spécifiés selon les spécifications ici, et la plateforme ouverte l'utilise pour déterminer si votre retour est réussi ou échoué
  • Exemple de demande : vous pouvez ; utilisez l'exemple ici pour remplacer vos paramètres. Testez votre service implémenté. Notez que cette méthode est très utile pour résoudre les erreurs.

Développement de services

L'achèvement du développement de services est votre propre processus de recherche et développement indépendant. Il vous suffit de suivre strictement le protocole du document à développer. Il n'y a pas d'exigences particulières concernant le langage de développement et l'environnement de déploiement.

Pour des raisons de sécurité, nous recommandons fortement à votre service de vérifier la signature et de vérifier l'adresse IP du demandeur. Afin de faciliter votre développement, nous vous fournissons un SDK. Veuillez consulter l'image ci-dessous pour la page de téléchargement du SDK.

image

Vérification de la signature

Vous devez choisir ! Le but de la vérification de signature est d'empêcher les pirates informatiques d'appeler vos services de manière malveillante et de garantir que la source d'initiation du service est la plateforme Alibaba.

Actuellement, la méthode de vérification de signature ne fournit que trois versions du SDK : JAVA, PHP et .NET. Les autres langages doivent être implémentés par vous-même.

Les règles de génération de la méthode de signature sont :

  • Enregistrez les paramètres de requête et les paramètres d'en-tête dans une carte pour une utilisation ultérieure. Pour faciliter l'explication, cette carte est nommée params. Remarque : Le paramètre sign dans la requête ne peut pas être placé dans params ;
  • Si le type dans le corps est form-data, placez tous les paramètres dans le corps, à l'exception des fichiers, dans params. Pour des raisons techniques, les fichiers transmis via form-data ne sont pas signés.
  • Si le type dans le corps est json ou xml, enregistrez temporairement le corps pour une utilisation ultérieure. Pour faciliter l'explication, ce contenu est nommé body ;
  • Triez les paramètres par ordre alphabétique de clé, puis parcourez-le et formez une chaîne sous la forme clé1+valeur2+clé2+valeur2..., pour la commodité de Explication, on l'appellera plus tard la chaîne de signature. Si la valeur est vide, utilisez plutôt "". Si le corps n'est pas vide, ajoutez tout le contenu du corps à la fin de la chaîne de signature ;
  • Ajoutez un secret au début et à la fin de la chaîne de signature ; Ce secret est obtenu lorsque SP postule pour une candidature. À ce stade, la chaîne de signature est générée ;
  • exécutez md5 et hex sur la chaîne de signature, et enfin obtenez le signe. Pour résumer, la formule pour générer le signe est :
    hex(md5(secret+sorted(header_params+url_params+form_params)+body)+secret)
  • Enfin, comparez le signe généré avec le signe obtenu à partir de la requête, c'est-à-dire le l'exactitude de la signature peut être vérifiée.

L'exemple de code pour la vérification de la signature est le suivant :

importer java.io.IOException;
 
importer javax.servlet.ServletException; ;
 
import com.taobao.api.internal.spi.CheckResult;
import com.taobao.api.internal.spi.SpiUtils;
 
public class TestHttpServlet étend HttpServlet {
 
    private static final long serialVersionUID = -7841738585932624564L;
 
protected void doPost(HttpServletRequest req, HttpServletResponse rsp) lance ServletException, IOException {
        CheckResult result = SpiUtils.checkSign(req, "fb821bc8785f2409a942eec601e6071d");
        System.out.println(result.isSuccess());
        System.out.println (result.getRequestBody());
    }
 
}


Remarque : le caractère de codage du paramètre URL défini dans la requête HTTP et le caractère défini lors de la conversion des chaînes en flux d'octets pour le résumé MD5 doivent être cohérents, sinon la signature contenant les paramètres chinois sera incohérente avec TOP.

Vérification de la source IP

Obligatoire ! Empêchez les pirates d'intercepter les requêtes HTTP initiées par la plateforme ouverte et de les transférer vers d'autres endroits pour des attaques par rejeu.

Le segment IP de sortie de Taobao Open Platform Gateway peut être obtenu via taobao.top.ipout.get Il est mis à jour de temps en temps. Vous devez appeler l'API régulièrement pour obtenir les dernières données.

L'exemple de code de vérification de la source IP est le suivant :

public class TestHttpServlet extends HttpServlet {

private static final long serialVersionUID = -7841738585932624564L;

protected void doPost(HttpServletRequest req, pServletResponse rsp) lance ServletException, IOException {
// La dernière liste de segments IP peut être obtenue via taobao.top.ipout.get
List<String> ipList = new ArrayList<String>();
ipList.add("140.205.144.0/24");
ipList .add( "140.205.145.0/24");
ipList.add("140.205.40.0/24");
ipList.add("140.205.39.0/24");
ipList.add("140.205.51.0 / 24") ;
ipList.add("140.205.56.0/24") .write("accès refusé")
              rsp.getWriter().flush();

Une autre façon consiste à configurer les règles d'accès IP sur le serveur HTTP. Par exemple, configurer Nginx pour autoriser uniquement les adresses IP TOP à accéder au répertoire /taobao :

emplacement /taobao {
autoriser 140.205.144.0/24;
autoriser 140.205 .145.0/24;
autoriser 140.205.39.0/24;
autoriser 140.205.40.0/24;
autoriser 140.205.51.0/24;
autoriser 140.205.56.0/24;
tout refuser;
}

Service de configuration

Cliquez sur « Développer et tester » pour accéder à la page ci-dessous :

image

Il y a deux zones de saisie d'adresse ici :

  • Adresse de l'environnement de test : Cette adresse est uniquement destinée aux tests. Ceci est discuté en détail dans la section suivante.
  • Adresse de l'environnement en ligne : Lorsque ce service SPI est publié et en ligne, l'adresse appelée par l'environnement en ligne est cette URL.

Service de test

Il existe deux endroits pour lancer les tests,

1) Outil de test SPI. Cliquez sur « Entrer le test » sur cette page pour accéder à cet outil. Voir l'image ci-dessous :

image

Par défaut, il n'y a qu'un seul cas de test : le smoke test. Ce test est simplement une requête HTTP assemblée par l'outil de test SPI selon le protocole et envoyée à l'adresse de l'environnement de test.

Si vous souhaitez ajouter des cas de tests, merci de contacter la personne en charge de la plateforme SPI.

Une fois le test terminé, vous pouvez visualiser tous les paramètres de cette requête HTTP dans les détails du test. Vous devez particulièrement prêter attention au contenu des « informations de réponse », qui peuvent dans un premier temps vérifier si votre service est normal.

image

2) Outil de test d'API quotidien, environnement sandbox : Le test ici consiste à tester le processus complet de SPI. C'est une étape essentielle avant la mise en ligne de votre service. Ce n'est qu'en réussissant cette étape que vous pourrez prouver que votre service est mis en ligne. le service fonctionne normalement.

Appelez une API TOP. TOP acheminera la requête vers l'adresse de votre environnement de test. Vous devez indiquer à l'appelant de l'API l'AppKey, et ce dernier ajoutera "10" devant celle-ci pour renseigner le paramètre targetAppkey.

Vous pouvez également être vous-même un appelant invité de l'API. La condition préalable est que le propriétaire de la scène ajoute d'abord cette API au bac à sable, puis que vous demandiez l'autorisation d'appeler cette API. Il convient de noter que la clé targetApp pour les tests sandbox est également votre clé d'application avec « 10 » devant elle également, la clé de signature est la clé sandbox ;

Vous pouvez aller ici pour lire la documentation expliquant comment appeler l'API.

Demander la libération

Une fois le test terminé, cliquez sur « Terminer le test » pour revenir à la page de liste des scènes dans la figure 5. Si vous pensez que l'URL nouvellement configurée peut être publiée pour prendre effet, cliquez sur « Demander la publication ». Si ce scénario est configuré comme « Requiert une révision », il devra être révisé par le responsable de la plateforme SPI avant de pouvoir être publié et prendre effet, sinon il pourra prendre effet immédiatement ;

FAQ

  • Il n'y a pas encore de FAQ sur ce document