WeChat Pay

WeChat Pay est un portefeuille numérique intégré à la célèbre superapplication chinoise WeChat. Au fil des ans, WeChat Pay s'est imposé comme une solution de paiement essentielle pour les entreprises qui cherchent à entrer en contact avec les consommateurs chinois, tant au niveau national qu'international. WeChat s'est transformé en un écosystème complet, offrant aux acheteurs chinois la possibilité de discuter, de consulter des produits ou des services et d'effectuer des paiements de manière transparente au sein d'une plateforme unifiée. Cette intégration a rendu l'expérience d'achat aussi facile qu'une conversation amicale avec vos compagnons, le tout en un seul endroit.

Caractéristiques #

Localisation des clientsConsommateurs chinois
Chinois d'outre-mer
Voyageurs chinois
Traitement des devisesCNY, GBP, USD, EUR, HKD
Devises de règlementGBP, EUR, USD, HKD
Montant minimum de la transactionAucune limite
Montant maximum de la transaction50 000 USD
Remboursements
Remboursements partiels
Remboursement partiel multiple
Répétition de la dette

Sous-produits #

Cas de paiementProduitDescription des scénarios de paiement
Code QRPaiement par InternetAprès avoir sélectionné WeChatPay comme méthode de paiement, un code QR apparaît sur le navigateur de l'ordinateur de bureau. L'acheteur ouvre alors l'application WeChat sur son téléphone portable et scanne le code-barres affiché sur la page du navigateur pour effectuer le paiement.
Code QRPaiement rapideSur le point de vente, les commerçants peuvent afficher le code QR sur le terminal et les clients peuvent ouvrir l'application WeChat sur leur téléphone portable pour scanner le code QR et effectuer le paiement.
Flux mobiles H5Paiement H5Sur le navigateur mobile, un acheteur sélectionne WeChatPay comme méthode de paiement à la caisse du commerçant, et est redirigé du navigateur vers l'application WeChatPay pour terminer le paiement avant d'être redirigé vers le navigateur du commerçant.
Mobile - Dans l'application WeChatCompte officielHabituellement populaires sur les marchés où l'on parle le plus le chinois, les commerçants peuvent envisager de créer une page de profil sur le site social WeChat et d'inviter les acheteurs à sélectionner des produits et à effectuer le paiement dans l'environnement du site social WeChat.
Mobile - Dans l'application WeChatMini programmeUn mini-programme est une sorte de site web au sein du site social WeChat, qui permet au marchand de personnaliser davantage son offre et aux acheteurs de sélectionner des produits et d'effectuer le paiement dans cet environnement.

Flux de paiement #

Code QR #

pic_QR Code.png

Flux mobiles H5 #

pic_Mobile H5 Flows.png

Mobile - Dans l'application WeChat #

pic_Mobile - In WeChat app.png

Méthode d'intégration #

Valeurs de l'énumération des méthodes de paiement : wechat_pay

Il existe deux méthodes d'intégration pour Wechat pay

  1. API directe
  2. Sortie de caisse
Méthode d'intégrationSous-production de Wechat PayValeurs de l'énumération terminal_type
API directePaiement par InternetWEB
API directePaiement rapideSCAN_CODE
API directePaiement H5WAP
API directePaiement du compte officielCOMPTE_OFFICIEL
API directeMini programmeMINI_PROGRAMME
Méthode d'intégrationSous-production de Wechat PayValeurs de l'énumération terminal_type
Sortie de caissePaiement par InternetVous n'avez pas besoin d'identifier le type de terminal lors du paiement. La caisse génère automatiquement un code QR ou redirige vers l'application WeChat en fonction de l'appareil du client.
Sortie de caissePaiement H5Vous n'avez pas besoin d'identifier le type de terminal lors du paiement. La caisse génère automatiquement un code QR ou redirige vers l'application WeChat en fonction de l'appareil du client.

API directe #

Un PaymentIntent est un objet qui représente votre intention de percevoir un paiement de la part de votre client et qui suit le cycle de vie du processus de paiement. Créez un PaymentIntent sur votre serveur et indiquez le montant à encaisser ainsi qu'une devise prise en charge.

Créer un PaymentIntent #

Pour une intégration API directe, vous pouvez créer un PaymentIntent et obtenir l'url en une seule étape. Voici une démonstration de la création d'intentions de paiement :

  1. Paiement par Internet
  2. Paiement H5
  3. Paiement rapide
  4. Paiement du compte officiel

Paiement par Internet #

Demande

{
    "montant":20,
    "devise" : "CNY",
    "confirm":true,
    "payment_method_options":{
        "wechat_pay":{
            "terminal_type" : "WEB",
            "os_type" : "IOS",
            "client_ip":"192.168.0.1"
            }
    },
    "payment_method_data":{
        "type" : "wechat_pay"
    },
"return_url" : "https://wooshpay.com"
}

Réponse

{
    "id" : "pi_1666625039547498496",
    "object" : "payment_intent",
    "created" : 1686189348000,
    "livemode" : false,
    "currency" : "CNY",
    "montant" : 20,
    "status" : "requires_action",
    "client_secret": "pi_1666625039547498496_secret_qGj2VEg4khXSWkXvRI7Y3yZe",
    "next_action" : {
        "type" : "wechat_pay_display_qr_code",
        "wechat_pay_display_qr_code" : {
            "image_data_url" : "weixin://wxpay/bizpayurl?pr=lJhTByDzz"
        }
    },
    "payment_method_types" : [
        "wechat_pay",
    ],
    "confirmation_method" : "automatique",
    "payment_method_options" : {
        "wechat_pay" : {
            "terminal_type" : "WEB",
            "os_type" : "IOS",
            "client_ip" : "192.168.0.1"
        }
    },
    "return_url" : "https://wooshpay.com",
    "payment_method" : "pm_1666625039430057984",
    "capture_method" : "automatic"
}

Le image_data_url de wechat_pay_display_qr_code de action_suivante peut être ouvert, à partir du lien, le commerçant peut générer les codes QR correspondants. Il peut ensuite utiliser le code QR correspondant pour facturer.

Paiement H5 #

Demande

{
    "montant" : 20,
    "devise" : "CNY",
    "confirm" : true,
    "payment_method_options" : {
        "wechat_pay" : {
            "terminal_type" : "WAP",
            "client_ip" : "192.168.124.133" /l'ip du mobile du client
        }
    },
    "payment_method_data" : {
        "type" : "wechat_pay"
    },
    "return_url" : "yourwebsite"
}

Réponse

{
    "id": "pi_1666625208749916160",
    "object": "payment_intent",
    "created": 1686189389000,
    "livemode": false,
    "currency": "CNY",
    "amount": 20,
    "status": "requires_action",
    "client_secret": "pi_1666625208749916160_secret_BeEXcbvAQNUkrV9C6ZFjOamS",
    "next_action": {
        "type": "wechat_pay_redirect_to_web",
        "wechat_pay_redirect_to_web": {
            "url": "https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx08095629694611f41b32df91d6ea160000&package=3449031350&redirect_url=https%3A%2F%2Fwooshpay.com"
        }
    },
    "payment_method_types": [
        "wechat_pay"
    ],
    "confirmation_method": "automatic",
    "payment_method_options": {
        "wechat_pay": {
            "terminal_type": "WAP",
            "os_type": "IOS",
            "client_ip": "172.31.5.62"
        }
    },
    "return_url": "https://wooshpay.com",
    "payment_method": "pm_1666625208624087040",
    "capture_method": "automatic"
}

Le url de wechat_pay_redirect_to_web de action_suivante peut être ouvert, à partir du lien, le client sera dirigé vers l'APP wechat pour le paiement, et sera dirigé vers l'APP wechat pour le paiement. return_url après paiement.

Paiement rapide #

Demande

{
    "montant":10,
    "devise" : "CNY",
    "confirm":true,
    "payment_method_options":{
        "wechat_pay":{
            "terminal_type" : "SCAN_CODE",
            "os_type" : "IOS",
            "client_ip":"192.168.0.1"
            }
    },
    "payment_method_data":{
        "type" : "wechat_pay",
        "wechat_pay":{
            "payment_code":"132993614656096754"
        }
    },
    "return_url" : "https://yourweb.com"
}

Réponse

{
    "id" : "pi_1666627489012645888",
    "object" : "payment_intent",
    "created" : 1686189932000,
    "livemode" : false,
    "currency" : "CNY",
    "montant" : 10,
    "status" : "requires_action",
    "client_secret": "pi_1666627489012645888_secret_t6oeKYYGb9egt3koNMsntfSg",
    "payment_method_types" : [
        "wechat_pay"
    ],
    "confirmation_method" : "automatique",
    "payment_method_options" : {
        "wechat_pay" : {
            "terminal_type" : "SCAN_CODE",
            "os_type" : "IOS",
            "client_ip" : "192.168.0.1"
        }
    },
    "return_url" : "https://yourweb.com",
    "payment_method" : "pm_1666627488878428160",
    "capture_method" : "automatic"
}

Le paiement sans mot de passe peut être effectué directement, sinon le client doit saisir le mot de passe, l'empreinte digitale, etc. sur le téléphone portable pour payer.

Paiement du compte officiel #

Demande

{
    "montant" : 20,
    "devise" : "CNY",
    "confirm" : true,
    "payment_method_options" : {
        "wechat_pay" : {
            "terminal_type" : "COMPTE_OFFICIEL",
            "client_ip" : "192.168.0.1",
            "openid" : ""
        }
    },
    "payment_method_data" : {
        "type" : "wechat_pay"
    }
}

Réponse

{
    "id" : "pi_1666626536515567616",
    "object" : "payment_intent",
    "created" : 1686189705000,
    "livemode" : false,
    "currency" : "CNY",
    "montant" : 20,
    "status" : "requires_payment_method",
    "client_secret": "pi_1666626536515567616_secret_CcrukFKgxbPp7UEAxodLlNRD",
    "last_payment_error" : {
        "code" : "payment_method_provider_decline",
        "message" : "erreur de service. Veuillez réessayer",
        "payment_method" : {
            "id" : "pm_1666626536389738496",
            "objet" : "payment_method",
            "created" : 1686189705000,
            "livemode" : false,
            "type" : "wechat_pay",
            "billing_details" : {}
        },
        "decline_code" : "invalid_request_error"
    },
    "payment_method_types" : [
        "wechat_pay"
    ],
    "confirmation_method" : "automatique",
    "payment_method_options" : {
        "wechat_pay" : {
            "openid" : "",
            "terminal_type" : "COMPTE_OFFICIEL",
            "client_ip" : "192.168.0.1"
        }
    },
    "payment_method" : "pm_1666626536389738496",
    "capture_method" : "automatic"
}

paramètres_du_compte_officiel_de_paiement_de_Wechat de action_suivante contient certains paramètres que vous devez utiliser dans la partie frontale. Vous trouverez ci-dessous un exemple d'utilisation de ces paramètres. js exemple

function onBridgeReady(){
 WeixinJSBridge.invoke(
   'getBrandWCPayRequest', {
     "appId":"wx7a154c094f74e84f",      
     "timeStamp":"1682239457",        
     "nonceStr":"kLRl3fI6FiP8PXxNNAiytwuQBdoCWXvZ",     
     "package":"prepay_id=wx23164417189051acf8825c57d275230000",     
     "signType":"MD5",     
     "paySign":"703868ed93842f83c9dff4d80d0cad67"  
    },
    function(res){     
       if(res.err_msg == "get_brand_wcpay_request:ok" ) {}     // Using the above method to judge the front-end return, the WeChat team solemnly reminds: res.err_msg will return ok after the user's payment is successful, but it does not guarantee that it is absolutely reliable. 
       }
   ); 
}
if (typeof WeixinJSBridge == "undefined"){
   if( document.addEventListener ){
    document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
   }else if (document.attachEvent){
    document.attachEvent('WeixinJSBridgeReady', onBridgeReady); 
    document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
   }
}else{
   onBridgeReady();
} 

Mini programme #

Demande

{
    "montant" : 20,
    "devise" : "GBP",
    "confirm" : true,
    "payment_method_options" : {
        "wechat_pay" : {
            "terminal_type" : "MINI_PROGRAMME",
            "client_ip" : "192.168.0.1",
            "openid" : "ojt**********QnCY"
        }
    },
    "payment_method_data" : {
        "type" : "wechat_pay"
    }
}

Réponse

{
    "id" : "pi_1684807723566235648",
    "object" : "payment_intent",
    "created" : 1690524438000,
    "livemode" : true,
    "currency" : "GBP",
    "montant" : 20,
    "status" : "requires_action",
    "client_secret": "pi_1684807723566235648_secret_V3rhLjnidzwNnc7UomZJzzxc",
    "next_action" : {
        "type" : "wechat_pay_mini_program_params",
        "wechat_pay_mini_program_params" : {
            "appId" : "***********",
            "timeStamp" : "1690524439",
            "nonceStr" : "VVdQaFzG9LjOSNyGNLFbt7NZAn2oE87z",
            "signType" : "MD5",
            "paySign" : "9d0a90a35935d71d7a0f5f33689030fe",
            "package" : "prepay_id=wx281407195596079e2b5253415099630000"
        }
    },
    "payment_method_types" : [
        "wechat_pay",
    ],
    "confirmation_method" : "automatique",
    "payment_method_options" : {
        "wechat_pay" : {
            "openid" : "**********",
            "terminal_type" : "MINI_PROGRAMME",
            "client_ip" : "192.168.0.1"
        }
    },
    "payment_method" : "pm_1684807723448795136",
    "capture_method" : "automatic"
}

Sortie de caisse #

Vous pouvez également utiliser WeChat Pay via la caisse hébergée par WooshPay. Pour prendre en charge les paiements, une session de paiement doit remplir toutes les conditions suivantes :

  • Les prix de tous les articles doivent être exprimés dans la même devise. Si les articles sont libellés dans des devises différentes, créez des sessions de paiement distinctes pour chaque devise.
  • Vous ne pouvez utiliser que des postes uniques.

Activer wechat pay comme méthode de paiement

Lors de la création d'une nouvelle session de paiement, vous devez.. :

Ajouter Wechat Pay à la liste des types_méthodes_de_paiement. Assurez-vous que tous les articles_de_ligne utilisent la même monnaie.

Créer une session #

Demande

{
    "cancel_url" : "https://wooshpay.com",
    "mode" : "paiement",
    "success_url" : "https://wooshpay.com",
    "payment_method_types" : [
        "wechat_pay"
    ],
    "line_items" : [
        {
            "price_data" : {
                "currency" : "CNY",
                "unit_amount" : 100,
                "product_data" : {
                    "name" : "fengli",
                    "url" : "www.baidu.com"
                }
            },
            "quantité" : 1
        }
    ]
}

Réponse

{
    "id" : "cs_1666627733867724800",
    "object" : "checkout.session",
    "created" : 1686189991000,
    "livemode" : false,
    "currency" : "CNY",
    "client" : "",
    "mode" : "paiement",
    "statut" : "ouvert",
    "url" : "https://checkouttest.wooshpay.com/pay/cs_test_1666627733867724800?key=pk_test_NTE1OTU5NzQ3NTQ2MTM5ODkzNzcxOktFZ0xlam1KbUxUb2gyUUNqWVVoaGpDSjE2NjkzNDUwMDgxMTE=",
    "cancel_url" : "https://wooshpay.com",
    "line_items" : {
        "object" : "liste",
        "data" : [
            {
                "id" : "li_1666627733993553920",
                "object" : "item",
                "currency" : "CNY",
                "description" : "fengli",
                "prix" : {
                    "id" : "price_1666627734022914048",
                    "objet" : "prix",
                    "created" : 1686189991000,
                    "livemode" : false,
                    "active" : true,
                    "currency" : "CNY",
                    "produit" : {
                        "id" : "prod_1666627734064857088",
                        "objet" : "produit",
                        "created" : 1686189991000,
                        "livemode" : false,
                        "active" : true,
                        "nom" : "fengli",
                        "url" : "www.baidu.com",
                        "updated" : 1686189991000
                    },
                    "type" : "one_time",
                    "unit_amount" : 100,
                    "billing_scheme" : "per_unit"
                },
                "quantity" : 1,
                "amount_subtotal" : 100,
                "montant_total" : 100
            }
        ]
    },
    "payment_intent" : "pi_1666627734450733056",
    "payment_method_types" : [
        "wechat_pay"
    ],
    "payment_status" : "non payé",
    "success_url" : "https://wooshpay.com",
    "amount_subtotal" : 100,
    "amount_total" : 100,
    "billing_address_collection" : "auto",
    "expires_at" : 1686276390865,
    "payment_link" : "",
    "client_secret": "pi_1666627734450733056_secret_jajX5Fe4Qlp6VGEm0ftP1wcZ"
}

Vous pouvez accéder à la caisse par l'intermédiaire de l'URL et sélectionner le paiement par WeChat. Si le client est une page web, un code QR sera généré et vous pourrez le scanner pour effectuer le paiement. Si le client est un terminal mobile, il passera directement à l'application WeChat pour le paiement.

Prochaine étape #

Vous pouvez ajouter d'autres fonctionnalités à votre intégration en fonction de vos besoins.

Créer un Webhook #

Écoutez les événements sur votre compte WooshPay afin que votre intégration puisse déclencher automatiquement des réactions. Créez un webhook qui se concentre principalement sur enabled_events et url.

Créer un remboursement #

Créez un remboursement pour restituer des fonds à votre client. Vous pouvez également effectuer des remboursements partiels, mais ils ne sont pas pris en charge par toutes les méthodes de paiement. Un remboursement partiel consiste à ne rembourser qu'une partie du montant de la transaction initiale.

What are your feelings
Updated on août 9, 2023