WeChat Pay

WeChat Pay è un portafoglio digitale integrato nella popolare superapp cinese WeChat. Nel corso degli anni, ha acquisito una notevole importanza come soluzione di pagamento essenziale per le aziende che cercano di entrare in contatto con i consumatori cinesi, sia a livello nazionale che internazionale. WeChat si è trasformato in un ecosistema completo, che offre agli acquirenti cinesi la comodità di chattare, sfogliare prodotti o servizi ed effettuare pagamenti senza soluzione di continuità all'interno di una piattaforma unificata. Questa integrazione ha reso l'esperienza di acquisto semplice come una conversazione amichevole con i propri compagni, il tutto in un unico luogo.

Caratteristiche #

Sedi dei clientiConsumatori cinesi
Cinesi d'oltremare
Viaggiatori cinesi
Elaborazione delle valuteCNY, GBP, USD, EUR, HKD
Valute di regolamentoGBP, EUR, USD, HKD
Importo minimo della transazioneNessun limite
Importo massimo della transazione50.000 USD
Rimborsi
Rimborsi parziali
Rimborso parziale multiplo
Addebito

Sottoprodotti #

Caso di pagamentoProdottoDescrizione degli scenari di pagamento
Codice QRPagamento via webSul browser desktop, dopo aver selezionato WeChatPay come metodo di pagamento, appare un codice QR. L'acquirente apre quindi l'app WeChat sul proprio cellulare e scansiona il codice a barre visualizzato sulla pagina del browser per completare il pagamento.
Codice QRPagamento rapidoNel punto vendita, gli esercenti possono visualizzare il codice QR sul terminale e gli acquirenti possono aprire l'app WeChat sul cellulare per scansionare il codice QR e completare il pagamento.
Flussi mobili H5Pagamento H5Sul browser mobile, l'acquirente seleziona WeChatPay come metodo di pagamento alla cassa dell'esercente e viene reindirizzato dal browser all'app WeChatPay per completare il pagamento prima di essere reindirizzato nuovamente al browser dell'esercente.
Mobile - Nell'applicazione WeChatConto ufficialeSolitamente diffusi nei mercati di lingua cinese, i commercianti possono prendere in considerazione la creazione di una pagina di profilo sul sito sociale WeChat e chiedere agli acquirenti di selezionare i prodotti e completare il pagamento nell'ambiente del sito sociale WeChat.
Mobile - Nell'applicazione WeChatMini programmaUn'altra evoluzione degli account ufficiali, un Mini Program è come un sito web all'interno del sito sociale WeChat, dove sono possibili ulteriori personalizzazioni da parte dell'esercente e gli acquirenti possono selezionare i prodotti e completare il pagamento all'interno di questo ambiente.

Flusso di pagamento #

Codice QR #

pic_QR Code.png

Flussi mobili H5 #

pic_Mobile H5 Flows.png

Mobile - Nell'applicazione WeChat #

pic_Mobile - In WeChat app.png

Metodo di integrazione #

Valori dell'enumerazione del metodo di pagamento: wechat_pay

Esistono due metodi di integrazione per Wechat pay

  1. API diretta
  2. Cassa
Metodo di integrazioneSottoproduzione di Wechat PayValori dell'enumerazione terminal_type
API direttaPagamento via webWEB
API direttaPagamento rapidoCODICE SCAN
API direttaH5 PagamentoWAP
API direttaPagamento del conto ufficialeCONTO_UFFICIALE
API direttaMini programmaMINI_PROGRAMMA
Metodo di integrazioneSottoproduzione di Wechat PayValori dell'enumerazione terminal_type
CassaPagamento via webNon è necessario identificare il tipo di terminale nel checkout. Il checkout genererà automaticamente un codice QR o reindirizzerà all'app WeChat in base al dispositivo dell'utente.
CassaH5 PagamentoNon è necessario identificare il tipo di terminale nel checkout. Il checkout genererà automaticamente un codice QR o reindirizzerà all'app WeChat in base al dispositivo dell'utente.

API diretta #

Un PaymentIntent è un oggetto che rappresenta l'intenzione di riscuotere un pagamento dal cliente e tiene traccia del ciclo di vita del processo di pagamento. Creare un PaymentIntent sul server e specificare l'importo da riscuotere e una valuta supportata.

Creare un Intento di pagamento #

Per l'integrazione diretta con l'API, è possibile creare PaymentIntent e ottenere l'url in un solo passaggio. Di seguito è riportata la demo della creazione degli intenti di pagamento:

  1. Pagamento via web
  2. H5 Pagamento
  3. Pagamento rapido
  4. Pagamento del conto ufficiale

Pagamento via web #

Richiesta

{
    "importo":20,
    "valuta": "CNY",
    "conferma":vero,
    "opzioni_di_metodo_di_pagamento":{
        "wechat_pay":{
            "tipo_terminale": "WEB",
            "os_type": "IOS",
            "client_ip":"192.168.0.1"
            }
    },
    "dati_di_metodo_di_pagamento":{
        "type": "wechat_pay"
    },
"return_url": "https://wooshpay.com"
}

Risposta

{
    "id": "pi_1666625039547498496",
    "oggetto": "payment_intent",
    "creato": 1686189348000,
    "livemode": false,
    "valuta": "CNY",
    "importo": 20,
    "stato": "requires_action",
    "client_secret": "pi_1666625039547498496_secret_qGj2VEg4khXSWkXvRI7Y3yZe",
    "next_action": {
        "tipo": "wechat_pay_display_qr_code",
        "wechat_pay_display_qr_code": {
            "image_data_url": "weixin://wxpay/bizpayurl?pr=lJhTByDzz".
        }
    },
    "payment_method_types": [
        "wechat_pay"
    ],
    "metodo di conferma": "automatic",
    "opzioni_metodo_di_pagamento": {
        "wechat_pay": {
            "tipo_terminale": "WEB",
            "os_type": "IOS",
            "client_ip": "192.168.0.1"
        }
    },
    "return_url": "https://wooshpay.com",
    "metodo di pagamento": "pm_1666625039430057984",
    "metodo di acquisizione": "automatic"
}

Il url_immagine_dati da wechat_pay_display_qr_code da azione_successiva Il link può essere aperto e il commerciante può generare i codici QR corrispondenti. Quindi utilizzare il codice QR corrispondente per effettuare l'addebito.

H5 Pagamento #

Richiesta

{
    "importo": 20,
    "valuta": "CNY",
    "conferma": vero,
    "payment_method_options": {
        "wechat_pay": {
            "tipo_terminale": "WAP",
            "client_ip": "192.168.124.133" /Ip del cellulare del cliente
        }
    },
    "dati_metodo_di_pagamento": {
        "type": "wechat_pay"
    },
    "return_url": "yourwebsite"
}

Risposta

{
    "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"
}

Il url da wechat_pay_redirect_a_web da azione_successiva Il cliente può aprire il link per accedere direttamente all'APP di wechat per il pagamento e per accedere direttamente al sito web di wechat. indirizzo_di_ritorno dopo il pagamento.

Pagamento rapido #

Richiesta

{
    "importo":10,
    "valuta": "CNY",
    "confirm":true,
    "opzioni_di_metodo_di_pagamento":{
        "wechat_pay":{
            "tipo_terminale": "SCAN_CODE",
            "os_type": "IOS",
            "client_ip":"192.168.0.1"
            }
    },
    "dati_metodo_di_pagamento":{
        "Tipo: "wechat_pay",
        "wechat_pay":{
            "payment_code":"132993614656096754"
        }
    },
    "return_url": "https://yourweb.com"
}

Risposta

{
    "id": "pi_1666627489012645888",
    "oggetto": "payment_intent",
    "creato": 1686189932000,
    "livemode": false,
    "valuta": "CNY",
    "importo": 10,
    "stato": "requires_action",
    "client_secret": "pi_1666627489012645888_secret_t6oeKYYGb9egt3koNMsntfSg",
    "tipi_di_pagamento": [
        "wechat_pay"
    ],
    "metodo_di_conferma": "automatic",
    "opzioni_metodo_di_pagamento": {
        "wechat_pay": {
            "tipo_terminale": "SCAN_CODE",
            "os_type": "IOS",
            "client_ip": "192.168.0.1"
        }
    },
    "return_url": "https://yourweb.com",
    "metodo di pagamento": "pm_1666627488878428160",
    "metodo di acquisizione": "automatic"
}

Il pagamento senza password può essere effettuato direttamente, altrimenti il cliente deve inserire la password, l'impronta digitale, ecc. sul telefono cellulare per pagare.

Pagamento del conto ufficiale #

Richiesta

{
    "importo": 20,
    "valuta": "CNY",
    "conferma": vero,
    "payment_method_options": {
        "wechat_pay": {
            "tipo_terminale": "OFFICIAL_ACCOUNT",
            "client_ip": "192.168.0.1",
            "openid": ""
        }
    },
    "payment_method_data": {
        "tipo": "wechat_pay"
    }
}

Risposta

{
    "id": "pi_1666626536515567616",
    "oggetto": "payment_intent",
    "creato": 1686189705000,
    "livemode": false,
    "valuta": "CNY",
    "importo": 20,
    "stato": "requires_payment_method",
    "client_secret": "pi_1666626536515567616_secret_CcrukFKgxbPp7UEAxodLlNRD",
    "last_payment_error": {
        "code": "payment_method_provider_decline",
        "messaggio": "Errore di servizio. Si prega di riprovare",
        "metodo_di_pagamento": {
            "id": "pm_1666626536389738496",
            "oggetto": "payment_method",
            "creato": 1686189705000,
            "livemode": false,
            "tipo": "wechat_pay",
            "billing_details": {}
        },
        "codice di rifiuto": "invalid_request_error".
    },
    "tipi_di_pagamento": [
        "wechat_pay"
    ],
    "metodo di conferma": "automatic",
    "opzioni_metodo_di_pagamento": {
        "wechat_pay": {
            "openid": "",
            "tipo_terminale": "OFFICIAL_ACCOUNT",
            "client_ip": "192.168.0.1"
        }
    },
    "metodo di pagamento": "pm_1666626536389738496",
    "metodo di acquisizione": "automatic"
}

wechat_pay_official_account_params da azione_successiva contiene alcuni parametri da utilizzare nel front-end. Di seguito è riportato un esempio di utilizzo dei parametri. js esempio

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 programma #

Richiesta

{
    "importo": 20,
    "valuta": "GBP",
    "conferma": vero,
    "payment_method_options": {
        "wechat_pay": {
            "tipo_terminale": "MINI_PROGRAMMA",
            "client_ip": "192.168.0.1",
            "openid": "ojt**********QnCY".
        }
    },
    "payment_method_data": {
        "tipo": "wechat_pay"
    }
}

Risposta

{
    "id": "pi_1684807723566235648",
    "oggetto": "payment_intent",
    "creato": 1690524438000,
    "livemode": true,
    "valuta": "GBP",
    "importo": 20,
    "stato": "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",
            "pacchetto": "prepay_id=wx281407195596079e2b5253415099630000"
        }
    },
    "payment_method_types": [
        "wechat_pay"
    ],
    "metodo di conferma": "automatic",
    "opzioni_metodo_di_pagamento": {
        "wechat_pay": {
            "openid": "**********",
            "tipo_terminale": "MINI_PROGRAMMA",
            "client_ip": "192.168.0.1"
        }
    },
    "metodo di pagamento": "pm_1684807723448795136",
    "metodo di acquisizione": "automatic"
}

Cassa #

È inoltre possibile utilizzare WeChat Pay tramite la cassa ospitata da WooshPay. Per supportare i pagamenti, una sessione di checkout deve soddisfare tutte le seguenti condizioni:

  • I prezzi di tutte le voci devono essere nella stessa valuta. Se gli articoli sono in valute diverse, creare sessioni di pagamento separate per ciascuna valuta.
  • È possibile utilizzare solo voci una tantum.

Abilitare wechat pay come metodo di pagamento

Quando si crea una nuova sessione di cassa, è necessario:

Aggiungete Wechat Pay all'elenco di tipi_di_metodo_di_pagamento. Assicurarsi che tutti voci_di_linea utilizzare la stessa valuta.

Creare una sessione #

Richiesta

{
    "cancel_url": "https://wooshpay.com",
    "modalità": "payment",
    "success_url": "https://wooshpay.com",
    "tipi_di_metodo_di_pagamento": [
        "wechat_pay"
    ],
    "line_items": [
        {
            "price_data": {
                "valuta": "CNY",
                "importo_unità": 100,
                "product_data": {
                    "nome": "fengli",
                    "url": "www.baidu.com"
                }
            },
            "quantità": 1
        }
    ]
}

Risposta

{
    "id": "cs_1666627733867724800",
    "oggetto": "checkout.session",
    "creato": 1686189991000,
    "livemode": false,
    "valuta": "CNY",
    "cliente": "",
    "modalità": "pagamento",
    "stato": "open",
    "url": "https://checkouttest.wooshpay.com/pay/cs_test_1666627733867724800?key=pk_test_NTE1OTU5NzQ3NTQ2MTM5ODkzNzcxOktFZ0xlam1KbUxUb2gyUUNqWVVoaGpDSjE2NjkzNDUwMDgxMTE=",
    "cancel_url": "https://wooshpay.com",
    "voci_di_linea": {
        "oggetto": "elenco",
        "dati": [
            {
                "id": "li_1666627733993553920",
                "oggetto": "item",
                "valuta": "CNY",
                "descrizione": "fengli",
                "prezzo": {
                    "id": "price_1666627734022914048",
                    "oggetto": "prezzo",
                    "creato": 1686189991000,
                    "livemode": false,
                    "active": true,
                    "valuta": "CNY",
                    "prodotto": {
                        "id": "prod_1666627734064857088",
                        "oggetto": "prodotto",
                        "creato": 1686189991000,
                        "livemode": false,
                        "active": true,
                        "nome": "fengli",
                        "url": "www.baidu.com",
                        "aggiornato": 1686189991000
                    },
                    "tipo": "one_time",
                    "importo_unità": 100,
                    "schema di fatturazione": "per_unità".
                },
                "quantità": 1,
                "importo_subtotale": 100,
                "importo_totale": 100
            }
        ]
    },
    "Intento di pagamento": "pi_1666627734450733056",
    "tipi_di_pagamento": [
        "wechat_pay"
    ],
    "payment_status": "unpaid",
    "success_url": "https://wooshpay.com",
    "importo_subtotale": 100,
    "importo_totale": 100,
    "indirizzo_di_fatturazione_raccolta": "auto",
    "scadenza": 1686276390865,
    "link_di_pagamento": "",
    "client_secret": "pi_1666627734450733056_secret_jajX5Fe4Qlp6VGEm0ftP1wcZ"
}

È possibile accedere alla cassa attraverso l'url e selezionare il pagamento con WeChat. Se il cliente è una pagina web, viene generato un codice QR che può essere scansionato per il pagamento. Se il cliente è un terminale mobile, salterà direttamente all'APP WeChat per il pagamento.

Passo successivo #

È possibile aggiungere altre funzionalità all'integrazione in base alle esigenze.

Creare un webhook #

Ascoltate gli eventi sul vostro account WooshPay in modo che la vostra integrazione possa attivare automaticamente le reazioni. Creare un webhook che si concentri principalmente su enabled_events e url.

Creare un rimborso #

Creare un rimborso per restituire i fondi al cliente. È possibile eseguire anche rimborsi parziali, ma non tutti i metodi di pagamento li supportano. Un rimborso parziale consiste nel rimborsare solo una parte dell'importo della transazione originale.

Quali sono i vostri sentimenti
Aggiornato il 9 agosto 2023