Saiba mais sobre o WeChat Pay, uma carteira digital popular entre os clientes da China. #
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 clientes | Consumidores chineses Chinês no exterior Viajantes chineses |
---|---|
Processamento de moedas | CNY, GBP, USD, EUR, HKD |
Moedas de liquidação | GBP, EUR, USD, HKD |
Valor mínimo da transação | Sem limite |
Valor máximo da transação | US$ 50.000 |
Reembolsos | ✅ |
Reembolsos parciais | ✅ |
Reembolso parcial múltiplo | ✅ |
Estorno | ❌ |
Subprodutos #
Caso de pagamento | Produto | Descrição dos cenários de pagamento |
---|---|---|
Código QR | Pagamento pela Web | No 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 QR | Pagamento rápido | No 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óveis | Pagamento H5 | No 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 WeChat | Conta oficial | Geralmente 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 WeChat | Mini programa | Outra 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 #
Fluxos H5 móveis #
Celular - No aplicativo WeChat #
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
- API direta
- Checkout
Método de integração | Subprodução do Wechat Pay | valores da enumeração terminal_type |
---|---|---|
API direta | Pagamento pela Web | WEB |
API direta | Pagamento rápido | CÓDIGO DE VARREDURA |
API direta | Pagamento H5 | WAP |
API direta | Pagamento da conta oficial | CONTA_OFICIAL |
API direta | Mini programa | MINI_PROGRAMA |
Método de integração | Subprodução do Wechat Pay | valores da enumeração terminal_type |
---|---|---|
Checkout | Pagamento pela Web | Você 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. |
Checkout | Pagamento H5 | Você 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:
- Pagamento pela Web
- Pagamento H5
- Pagamento rápido
- 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.