Skip to content
Catégories:

MemberPress Ajouter un client au portail des partenaires Microsoft : guide d’intégration étape par étape

Post date:

Introduction

Vous avez décidé d’étendre votre flux de transactions en déplaçant vos abonnés MemberPress vers le portail des partenaires Microsoft pour la gestion des licences et des contrats. Vous pensez que l’envoi automatique des clients de votre site WordPress vers le portail partenaire Microsoft peut être un casse-tête. Ce guide vous montre, étape par étape, comment connecter MemberPress au portail des partenaires Microsoft, en automatisant la création de clients, la synchronisation des données et la gestion des mises à jour. À la fin, vous saurez comment configurer l’intégration, éviter les pièges courants et maintenir une connexion fiable entre les deux systèmes.

Prérequis techniques

Compte de développeur du portail des partenaires Microsoft

  • Compte partenaire Microsoft– assurez-vous que vous êtes connecté en tant que partenaire officiel.
  • Clé API– vous devez créer une clé API dans le portail partenaire. Il sert d’identifiant unique à l’application que vous allez coder.
    1. Nœud Centre des partenairesAllez à Centre de développement > Applications .
    2. Sélectionner Enregistrer une nouvelle candidature.
    3. Copiez votre Numéro client et ton Secret client .
    4. Remarquez le URL d’appel depuis votre webhook que vous créerez bientôt.

Compte WordPress + MemberPress

  • WordPress 6+ (ou quelle que soit la version que vous utilisez).
  • MemberPress 4.4+(des crochets plus récents sont indispensables).
  • Plugin API REST WordPress – WordPress est livré avec une API REST native ; aucune extension supplémentaire n’est requise pour exposer les données d’abonnement.

Connaissance de base de PHP

  • Vous devez être à l’aise avec la création de plugins WordPress ou l’ajout de code à functions.php.

Étape 1: Préparez la connexion API

Authentification OAuth 2.0

Le portail des partenaires Microsoft utilise OAuth 2.0; vous devrez changer votre Numéro client et Secret client contre un jeton d’accès.

function mp_get_access_token() {
    $client_id     = 'VOTRE_CLIENT_ID';
    $client_secret = 'VOTRE_CLIENT_SECRET';
    $token_url     = 'https://login.partner.microsoftonline.com/common/oauth2/v2.0/token';

    $body = [
        'grant_type'    => 'client_credentials',
        'client_id'     => $client_id,
        'client_secret' => $client_secret,
        'scope'         => 'https://api.partnercenter.microsoft.com/.default',
    ];

    $response = wp_remote_post( $token_url, [
        'body'  => $body,
        'headers' => [ 'Content-Type' => 'application/x-www-form-urlencoded' ],
    ] );

    if ( is_wp_error( $response ) ) {
        error_log( 'Erreur d'authentification : ' . $response->get_error_message() );
        return false;
    }

    $data = json_decode( wp_remote_retrieve_body( $response ), true );
    return $data['access_token'] ?? false;
}

Accès à l’essai

Ajoutez un petit script à un fichier de test ou utilisezwp-cli:

wp eval 'echo mp_get_access_token();'

Vous devez obtenir un jeton de 30 minutes. Si le jeton ne s’affiche pas, vérifiez les informations d’identification et votre connexion Internet.

Étape 2:Créez un hook dans MemberPress

Savoir quand déclencher l’intégration

MemberPress propose plusieurs actions : mepr-product-activated, mepr-subscription-activated, mepr-subscription-cancelledetc. Pour la création initiale d’un client, utilisez mepr-member-activated.

add_action( 'mepr-member-activated', 'mp_create_partner_client', 10, 1 );
function mp_create_partner_client( $member ) {
    // Déclenche la fonction d’ajout de client
    $response = mp_partner_create_customer( $member );
    // Enregistrez la réponse pour le debug
    error_log( 'Création client : ' . wp_json_encode( $response ) );
}

Étape 3: Créer la demande POST pour le portail des partenaires Microsoft

Mapper les champs utilisateur

MembrePresse Portail des partenaires Microsoft
member->first_name firstName
member->last_name lastName
member->email emailAddress
member->address billingAddress(avec nom, rue, code postal, ville, pays)

Créez un tableau structuré:

function mp_partner_create_customer( $member ) {
    $token = mp_get_access_token();
    if ( ! $token ) return [ 'error' => 'Token introuvable' ];

    $payload = [
        'fullName'      => $member->first_name . ' ' . $member->last_name,
        'emailAddress'  => $member->email,
        'billingAddress' => [
            'name'        => $member->first_name . ' ' . $member->last_name,
            'street'      => $member->address,
            'city'        => $member->city ?? '',
            'postalCode'  => $member->postcode ?? '',
            'country'     => $member->country ?? '',
        ],
        'status'        => 'active',
    ];

    $api_url = 'https://api.partnercenter.microsoft.com/v1/partners/YOUR_COMPANY_ID/customers';

    $response = wp_remote_post( $api_url, [
        'headers' => [
            'Authorization' => 'Bearer ' . $token,
            'Content-Type'  => 'application/json',
        ],
        'body'    => wp_json_encode( $payload ),
    ] );

    if ( is_wp_error( $response ) ) {
        return [ 'error' => $response->get_error_message() ];
    }

    return json_decode( wp_remote_retrieve_body( $response ), true );
}

Note de sécurité

  • N’exposez jamais le Secret client sur le devant.
  • Enregistrez les clés dans wp-config.php ou utilisez le gestionnaire de mots de passe WordPress.

Étape4:Gérer les mises à jour et les restaurations

Mise à jour des informations client

Merlu: mepr-member-updated et mepr-subscription-activated.

add_action( 'mepr-member-updated', 'mp_update_partner_customer', 10, 1 );
function mp_update_partner_customer( $member ) {
    $token = mp_get_access_token();
    if ( ! $token ) return;

    $customer_id = get_user_meta( $member->ID, 'partner_customer_id', true );
    if ( ! $customer_id ) return; // Pas de client associé

    $payload = [ /* même structure que précédemment, mais sans le champ `status` */ ];

    $api_url = "https://api.partnercenter.microsoft.com/v1/customers/$customer_id";

    wp_remote_put( $api_url, [
        'headers' => [
            'Authorization' => 'Bearer ' . $token,
            'Content-Type'  => 'application/json',
        ],
        'body' => wp_json_encode( $payload ),
    ] );
}

Annulation de l’abonnement

Crochet: mepr-subscription-cancelled.

add_action( 'mepr-subscription-cancelled', 'mp_cancel_partner_customer', 10, 1 );
function mp_cancel_partner_customer( $subscription ) {
    $customer_id = get_user_meta( $subscription->user_id, 'partner_customer_id', true );
    if ( ! $customer_id ) return;

    $token = mp_get_access_token();
    if ( ! $token ) return;

    $api_url = "https://api.partnercenter.microsoft.com/v1/customers/$customer_id/renewalPolicy";
    $payload = [
        'renewalPolicy' => [
            'subscriptionState' => 'cancelled'
        ]
    ];

    wp_remote_patch( $api_url, [
        'headers' => [
            'Authorization' => 'Bearer ' . $token,
            'Content-Type'  => 'application/json',
        ],
        'body' => wp_json_encode( $payload ),
    ] );
}

Stocker l’ID de partenaire Microsoft

Après la création, récupérez et stockez l’ID unique renvoyé par l’API:

$customer_id = $response['customerId'] ?? null;
if ( $customer_id ) {
    update_user_meta( $member->ID, 'partner_customer_id', $customer_id );
}

Étape 5 : tester l’intégration

Stage Action Résultat attendu
1 Créer un nouvel abonné sur MemberPress Une requête POST est envoyée au portail partenaire.
2 Consultez le portail des partenaires Microsoft Le client apparaît avec les informations correctes.
3 Changer l’adresse e-mail de l’abonné Le service partenaire reçoit une requête PUT.
4 Annuler l’abonnement Le statut devient annulé sur le portail.

Dépannage des problèmes courants

  • Jeton expiré: OAuth 2.0 émet un jeton temporaire. Vous pouvez configurer un cache dans l’option wp_options réutiliser le même token tant qu’il est valide.
  • Erreurs 400/401: Vérifiez les champs obligatoires et l’autorisation. Utilisez un outil comme Postman pour reproduire manuellement la requête.
  • Données non synchronisées: N’oubliez pas de toujours déclencher le même hook après chaque mise à jour utilisateur.
  • Limites des appels API: Microsoft impose un plafond. Si vous avez un grand nombre d’abonnés, mettez en place un système de file d’attente (par exemple WP-Cron ou externe).

Meilleures pratiques

Recommandation De sorte que
Sécurité Utiliser les fonctions WP_Http juste pour éviter les injections.
Inscription Ne pas utiliser error_log en production; préférez un plugin de logs (par exemple : Log It).
Débogage en développement Activer WP_DEBUG pour voir les erreurs localement.
Pour mettre à jour Conservez le code dans un plugin dédié afin de pouvoir le mettre à jour sans affecter votre thème.
Tests automatisés Implémentez les tests unitaires PHPUnit pour le code WordPress.

Conclusion

Vous disposez désormais d’un ensemble complet et structuré de code pour connecter MemberPress au portail des partenaires Microsoft. En suivant ces étapes, vous pouvez automatiser la remontée des clients, réduire les erreurs manuelles et consolider votre processus de gestion des licences. Avec un script qui s’exécute à chaque fois que vous créez, mettez à jour ou annulez, votre site WordPress devient un véritable essieulogiciel d’intégration, prêt à accompagner la croissance de votre entreprise tout en répondant aux exigences de Microsoft. Allez-y, mettez en œuvre, testez et profitez d’une synchronisation transparente entre vos clients MemberPress et votre portail de partenaires industriels.