WeChat Pay

O WeChat Pay funciona como uma carteira digital integrada ao popular superaplicativo chinês conhecido como WeChat. Com o passar dos anos, ele ganhou destaque significativo como uma solução de pagamento essencial para empresas que buscam se conectar com os consumidores chineses, tanto no mercado interno quanto no internacional. O WeChat se transformou em um ecossistema abrangente, oferecendo aos compradores chineses a conveniência de conversar, navegar por produtos ou serviços e fazer pagamentos de forma integrada em uma plataforma unificada. Essa integração tornou a experiência de compra tão fácil quanto ter uma conversa amigável com seus companheiros, tudo em um só lugar.

Recursos #

Localizações de clientesConsumidores chineses
Chinês no exterior
Viajantes chineses
Processamento de moedasCNY, GBP, USD, EUR, HKD
Moedas de liquidaçãoGBP, EUR, USD, HKD
Valor mínimo da transaçãoSem limite
Valor máximo da transaçãoUS$ 50.000
Reembolsos
Reembolsos parciais
Reembolso parcial múltiplo
Estorno

Subprodutos #

Caso de pagamentoProdutoDescrição dos cenários de pagamento
Código QRPagamento pela WebNo navegador para desktop, depois de selecionar o WeChatPay como método de pagamento no checkout do comerciante, é exibido um código QR. O comprador então abre o aplicativo WeChat em seu celular e escaneia o código de barras exibido na página do navegador para concluir o pagamento.
Código QRPagamento rápidoNo ponto de venda, os comerciantes podem exibir o código QR no terminal e os compradores podem abrir o aplicativo WeChat em seus telefones celulares para escanear o código QR e concluir o pagamento.
Fluxos H5 móveisPagamento H5No navegador móvel, um comprador seleciona o WeChatPay como método de pagamento no checkout do comerciante e é redirecionado do navegador para o aplicativo WeChatPay para concluir o pagamento antes de ser redirecionado de volta ao navegador do comerciante.
Celular - No aplicativo WeChatConta oficialGeralmente popular em mercados que falam mais chinês, os comerciantes podem considerar a criação de uma página de perfil no site social WeChat e solicitar que os compradores selecionem produtos e concluam o pagamento no ambiente do site social WeChat.
Celular - No aplicativo WeChatMini programaOutra versão das contas oficiais, um miniprograma é como um site dentro do site social WeChat, onde mais personalizações do comerciante são possíveis e os compradores podem selecionar produtos e concluir o pagamento nesse ambiente.

Fluxo de pagamento #

Código QR #

pic_QR Code.png

Fluxos H5 móveis #

pic_Mobile H5 Flows.png

Celular - No aplicativo WeChat #

pic_Mobile - In WeChat app.png

Método de integração #

Valores de enumeração do método de pagamento: wechat_pay

Há dois métodos de integração para o Wechat pay

  1. API direta
  2. Checkout
Método de integraçãoSubprodução do Wechat Payvalores da enumeração terminal_type
API diretaPagamento pela WebWEB
API diretaPagamento rápidoCÓDIGO DE VARREDURA
API diretaPagamento H5WAP
API diretaPagamento da conta oficialCONTA_OFICIAL
API diretaMini programaMINI_PROGRAMA
Método de integraçãoSubprodução do Wechat Payvalores da enumeração terminal_type
CheckoutPagamento pela WebVocê não precisa identificar o tipo de terminal no checkout. O checkout gerará automaticamente um código QR ou redirecionará para o aplicativo WeChat com base em seu dispositivo.
CheckoutPagamento H5Você não precisa identificar o tipo de terminal no checkout. O checkout gerará automaticamente um código QR ou redirecionará para o aplicativo WeChat com base em seu dispositivo.

API direta #

Um PaymentIntent é um objeto que representa sua intenção de cobrar o pagamento do cliente e rastreia o ciclo de vida do processo de pagamento. Crie um PaymentIntent em seu servidor e especifique o valor a ser cobrado e uma moeda compatível.

Criar um PaymentIntent #

Para a integração direta com a API, você pode criar o PaymentIntent e obter o URL em apenas uma etapa. Veja a seguir a demonstração da criação de intenções de pagamento:

  1. Pagamento pela Web
  2. Pagamento H5
  3. Pagamento rápido
  4. Pagamento da conta oficial

Pagamento pela Web #

Solicitação

{
    "amount":20,
    "currency": "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"
}

Resposta

{
    "id": "pi_1666625039547498496",
    "object": "payment_intent",
    "created": 1686189348000,
    "livemode": falso,
    "currency" (moeda): "CNY",
    "amount" (valor): 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": "automatic",
    "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"
}

O image_data_url de wechat_pay_display_qr_code de próxima_ação pode ser aberto, a partir do link, o comerciante pode gerar códigos QR correspondentes. Em seguida, use o código QR correspondente para fazer a cobrança.

Pagamento H5 #

Solicitação

{
    "amount": 20,
    "currency" (moeda): "CNY",
    "confirm": true,
    "payment_method_options": {
        "wechat_pay": {
            "terminal_type": "WAP",
            "client_ip": "192.168.124.133" //IP do celular do cliente
        }
    },
    "payment_method_data": {
        "type": "wechat_pay"
    },
    "return_url": "yourwebsite"
}

Resposta

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

O url de wechat_pay_redirect_to_web de próxima_ação pode ser aberto, a partir do link, o cliente será direcionado para o APP do wechat para pagamento, e será direcionado para return_url após o pagamento.

Pagamento rápido #

Solicitação

{
    "amount":10,
    "currency": "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"
}

Resposta

{
    "id": "pi_1666627489012645888",
    "object": "payment_intent",
    "created": 1686189932000,
    "livemode": falso,
    "currency" (moeda): "CNY",
    "amount" (valor): 10,
    "status": "requires_action",
    "client_secret": "pi_1666627489012645888_secret_t6oeKYYGb9egt3koNMsntfSg",
    "payment_method_types": [
        "wechat_pay"
    ],
    "confirmation_method": "automatic",
    "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"
}

O pagamento sem senha pode ser feito diretamente, caso contrário, o cliente precisa digitar a senha, a impressão digital etc. no celular para pagar.

Pagamento da conta oficial #

Solicitação

{
    "amount": 20,
    "currency" (moeda): "CNY",
    "confirm": true,
    "payment_method_options": {
        "wechat_pay": {
            "terminal_type": "OFFICIAL_ACCOUNT",
            "client_ip": "192.168.0.1",
            "openid": ""
        }
    },
    "payment_method_data": {
        "type": "wechat_pay"
    }
}

Resposta

{
    "id": "pi_1666626536515567616",
    "object": "payment_intent",
    "created": 1686189705000,
    "livemode": falso,
    "currency" (moeda): "CNY",
    "amount" (valor): 20,
    "status": "requires_payment_method",
    "client_secret": "pi_1666626536515567616_secret_CcrukFKgxbPp7UEAxodLlNRD",
    "last_payment_error": {
        "code": "payment_method_provider_decline",
        "message": "erro de serviço. Por favor, tente novamente",
        "payment_method": {
            "id": "pm_1666626536389738496",
            "object": "payment_method",
            "created": 1686189705000,
            "livemode": falso,
            "type": "wechat_pay",
            "billing_details": {}
        },
        "decline_code": "invalid_request_error"
    },
    "payment_method_types": [
        "wechat_pay"
    ],
    "confirmation_method": "automatic",
    "payment_method_options": {
        "wechat_pay": {
            "openid": "",
            "terminal_type": "OFFICIAL_ACCOUNT",
            "client_ip": "192.168.0.1"
        }
    },
    "payment_method": "pm_1666626536389738496",
    "capture_method": "automatic"
}

wechat_pay_official_account_params de próxima_ação contém alguns parâmetros que você precisa usar no front-end. Veja abaixo um exemplo de como usar os parâmetros. js exemplo

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

Solicitação

{
    "amount": 20,
    "currency" (moeda): "GBP",
    "confirm": true,
    "payment_method_options": {
        "wechat_pay": {
            "terminal_type": "MINI_PROGRAM",
            "client_ip": "192.168.0.1",
            "openid": "ojt**********QnCY"
        }
    },
    "payment_method_data": {
        "type": "wechat_pay"
    }
}

Resposta

{
    "id": "pi_1684807723566235648",
    "object": "payment_intent",
    "created": 1690524438000,
    "livemode": true,
    "currency": "GBP",
    "amount" (valor): 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" (pacote): "prepay_id=wx281407195596079e2b5253415099630000"
        }
    },
    "payment_method_types": [
        "wechat_pay",
    ],
    "confirmation_method": "automatic",
    "payment_method_options": {
        "wechat_pay": {
            "openid": "**********",
            "terminal_type": "MINI_PROGRAM",
            "client_ip": "192.168.0.1"
        }
    },
    "payment_method": "pm_1684807723448795136",
    "capture_method": "automatic"
}

Checkout #

Você também pode utilizar o WeChat Pay por meio do checkout hospedado pelo WooshPay. Para suportar pagamentos, uma sessão de checkout deve atender a todas as condições a seguir:

  • Os preços de todos os itens de linha devem estar na mesma moeda. Se você tiver itens de linha em moedas diferentes, crie sessões de checkout separadas para cada moeda.
  • Você só pode usar itens de linha únicos.

Habilitar o wechat pay como um método de pagamento

Ao criar uma nova sessão de checkout, você precisa:

Adicione o Wechat Pay à lista de payment_method_types. Certifique-se de que todos os itens_linha usam a mesma moeda.

Criar uma sessão #

Solicitação

{
    "cancel_url": "https://wooshpay.com",
    "mode": "payment" (pagamento),
    "success_url": "https://wooshpay.com",
    "payment_method_types": [
        "wechat_pay"
    ],
    "line_items": [
        {
            "price_data": {
                "currency" (moeda): "CNY",
                "unit_amount": 100,
                "product_data": {
                    "name": "fengli",
                    "url": "www.baidu.com"
                }
            },
            "quantity" (quantidade): 1
        }
    ]
}

Resposta

{
    "id": "cs_1666627733867724800",
    "object": "checkout.session",
    "created": 1686189991000,
    "livemode": falso,
    "currency" (moeda): "CNY",
    "customer" (cliente): "",
    "mode" (modo): "payment" (pagamento),
    "status": "open",
    "url": "https://checkouttest.wooshpay.com/pay/cs_test_1666627733867724800?key=pk_test_NTE1OTU5NzQ3NTQ2MTM5ODkzNzcxOktFZ0xlam1KbUxUb2gyUUNqWVVoaGpDSjE2NjkzNDUwMDgxMTE=",
    "cancel_url": "https://wooshpay.com",
    "line_items": {
        "object": "list",
        "data": [
            {
                "id": "li_1666627733993553920",
                "object": "item",
                "currency": "CNY",
                "description": "fengli",
                "price" (preço): {
                    "id": "price_1666627734022914048",
                    "object": "price" (preço),
                    "created": 1686189991000,
                    "livemode": falso,
                    "active": true,
                    "currency" (moeda): "CNY",
                    "product" (produto): {
                        "id": "prod_1666627734064857088",
                        "object": "product",
                        "created" (criado): 1686189991000,
                        "livemode": falso,
                        "active": true,
                        "name" (nome): "fengli",
                        "url": "www.baidu.com",
                        "updated": 1686189991000
                    },
                    "type" (tipo): "one_time",
                    "unit_amount": 100,
                    "billing_scheme": "per_unit"
                },
                "quantity" (quantidade): 1,
                "amount_subtotal": 100,
                "amount_total": 100
            }
        ]
    },
    "payment_intent": "pi_1666627734450733056",
    "payment_method_types": [
        "wechat_pay"
    ],
    "payment_status": "unpaid" (não pago),
    "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"
}

Você pode acessar o balcão de checkout por meio do URL e selecionar o pagamento via WeChat. Se o cliente for uma página da Web, ele gerará um código QR e você poderá digitalizar o código para pagamento. Se o cliente for um terminal móvel, ele acessará diretamente o aplicativo WeChat para pagamento.

Próxima etapa #

Você pode adicionar mais recursos à sua integração conforme necessário

Criar um webhook #

Ouça os eventos em sua conta WooshPay para que sua integração possa acionar reações automaticamente. Crie um webhook que se concentre principalmente em enabled_events e url.

Criar um reembolso #

Crie um reembolso para devolver os fundos ao seu cliente. Você também pode realizar reembolsos parciais, mas nem todos os métodos de pagamento os aceitam. Um reembolso parcial é quando você reembolsa apenas parte do valor original da transação.

What are your feelings
Updated on agosto 9, 2023