WeChat Pay

WeChat Pay es un monedero digital integrado en la popular superapp china WeChat. A lo largo de los años, se ha convertido en una solución de pago esencial para las empresas que desean conectar con los consumidores chinos, tanto a nivel nacional como internacional. WeChat se ha transformado en un ecosistema integral que ofrece a los compradores chinos la comodidad de chatear, explorar productos o servicios y realizar pagos sin problemas dentro de una plataforma unificada. Esta integración ha hecho que la experiencia de compra sea tan sencilla como mantener una conversación amistosa con tus compañeros, todo en un mismo lugar.

Características #

Ubicación de los clientesConsumidores chinos
Chinos de ultramar
Viajeros chinos
Tratamiento de divisasCNY, GBP, USD, EUR, HKD
Divisas de liquidaciónGBP, EUR, USD, HKD
Importe mínimo de transacciónSin límite
Importe máximo de la transacción50.000 USD
Reembolsos
Reembolsos parciales
Reembolso parcial múltiple
Contracargo

Subproductos #

Caso de pagoProductoDescripción de los escenarios de pago
Código QRPago por InternetEn el navegador de escritorio, tras seleccionar WeChatPay como método de pago, aparece un código QR. A continuación, el comprador abre la aplicación WeChat en su teléfono móvil y escanea el código de barras que aparece en la página del navegador para completar el pago.
Código QRPago rápidoEn el punto de venta, los comerciantes pueden mostrar el código QR en el terminal y los compradores pueden abrir la aplicación WeChat en sus teléfonos móviles para escanear el código QR y completar el pago.
Flujos móviles H5Pago H5En el navegador móvil, el comprador selecciona WeChatPay como método de pago en la caja del comercio y es redirigido desde el navegador a la aplicación WeChatPay para completar el pago antes de ser redirigido de nuevo al navegador del comercio.
Móvil - En la aplicación WeChatCuenta oficialLos comerciantes, que suelen ser populares en los mercados de habla china, pueden plantearse crear una página de perfil en la red social WeChat y pedir a los compradores que seleccionen los productos y completen el pago en el entorno de la red social WeChat.
Móvil - En la aplicación WeChatMiniprogramaOtra vuelta de tuerca a las cuentas oficiales, un miniprograma es como un sitio web dentro de la red social WeChat en el que el comerciante puede personalizar más sus productos y los compradores pueden seleccionarlos y efectuar el pago en ese entorno.

Flujo de pagos #

Código QR #

pic_QR Code.png

Flujos móviles H5 #

pic_Mobile H5 Flows.png

Móvil - En la aplicación WeChat #

pic_Mobile - In WeChat app.png

Método de integración #

Valores de la enumeración del método de pago: wechat_pay

Hay dos métodos de integración para Wechat pay

  1. API directa
  2. Pedido
Método de integraciónSubproducción de Wechat Payvalores de la enumeración terminal_type
API directaPago por InternetWEB
API directaPago rápidoCÓDIGO_DE_ESCANEO
API directaPago H5WAP
API directaPago de la cuenta oficialCUENTA_OFICIAL
API directaMiniprogramaMINI_PROGRAMA
Método de integraciónSubproducción de Wechat Payvalores de la enumeración terminal_type
PedidoPago por InternetNo es necesario identificar el tipo de terminal en el proceso de pago. El proceso de pago generará automáticamente un código QR o redirigirá a WeChat App en función del dispositivo.
PedidoPago H5No es necesario identificar el tipo de terminal en el proceso de pago. El proceso de pago generará automáticamente un código QR o redirigirá a WeChat App en función del dispositivo.

API directa #

Un PaymentIntent es un objeto que representa su intención de cobrar el pago de su cliente y realiza un seguimiento del ciclo de vida del proceso de pago. Cree un PaymentIntent en su servidor y especifique el importe a cobrar y una divisa admitida.

Crear una PaymentIntent #

Para la integración directa de la API, puede crear PaymentIntent y obtener la url en un solo paso. La siguiente es la demostración de la creación de intentos de pago:

  1. Pago por Internet
  2. Pago H5
  3. Pago rápido
  4. Pago de la cuenta oficial

Pago por Internet #

Solicitar

{
    "importe":20
    "moneda": "CNY",
    "confirmar":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"
}

Respuesta

{
    "id": "pi_1666625039547498496",
    "object": "payment_intent",
    "creado": 1686189348000,
    "livemode": false
    "currency": "CNY",
    "importe": 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"
}

En imagen_datos_url de wechat_pay_display_qr_code de siguiente_acción puede abrirse, desde el enlace, el comerciante puede generar los códigos QR correspondientes. A continuación, utilice el código QR correspondiente para cobrar.

Pago H5 #

Solicitar

{
    "importe": 20,
    "moneda": "CNY",
    "confirm": true
    "payment_method_options": {
        "wechat_pay": {
            "terminal_type": "WAP",
            "client_ip": "192.168.124.133" //ip del móvil del cliente
        }
    },
    "payment_method_data": {
        "type": "wechat_pay"
    },
    "return_url": "yourwebsite"
}

Respuesta

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

En url de wechat_pay_redirect_to_web de siguiente_acción se puede abrir, desde el enlace, el cliente será directo a la APP wechat para el pago, y ser directo a URL_de_retorno después del pago.

Pago rápido #

Solicitar

{
    "importe":10
    "moneda": "CNY",
    "confirmar":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"
}

Respuesta

{
    "id": "pi_1666627489012645888",
    "object": "payment_intent",
    "creado": 1686189932000,
    "livemode": false
    "currency": "CNY",
    "importe": 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"
}

El pago sin contraseña se puede pagar directamente, de lo contrario el cliente necesita introducir la contraseña, huella dactilar, etc. en el teléfono móvil para pagar.

Pago de la cuenta oficial #

Solicitar

{
    "importe": 20,
    "moneda": "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"
    }
}

Respuesta

{
    "id": "pi_1666626536515567616",
    "object": "payment_intent",
    "creado": 1686189705000,
    "livemode": false
    "currency": "CNY",
    "importe": 20,
    "status": "requires_payment_method",
    "client_secret": "pi_1666626536515567616_secret_CcrukFKgxbPp7UEAxodLlNRD",
    "last_payment_error": {
        "code": "payment_method_provider_decline",
        "message": "error de servicio. Por favor, inténtelo de nuevo",
        "payment_method": {
            "id": "pm_1666626536389738496",
            "object": "payment_method",
            "creado": 1686189705000,
            "livemode": false,
            "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 siguiente_acción contiene algunos parámetros que debe utilizar en el front-end. A continuación se muestra un ejemplo de cómo utilizar los parámetros. js ejemplo

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();
} 

Miniprograma #

Solicitar

{
    "importe": 20,
    "moneda": "GBP",
    "confirm": true
    "payment_method_options": {
        "wechat_pay": {
            "terminal_type": "MINI_PROGRAMA",
            "client_ip": "192.168.0.1",
            "openid": "ojt**********QnCY"
        }
    },
    "payment_method_data": {
        "type": "wechat_pay"
    }
}

Respuesta

{
    "id": "pi_1684807723566235648",
    "object": "payment_intent",
    "creado": 1690524438000,
    "livemode": true,
    "currency": "GBP",
    "importe": 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": "automatic",
    "payment_method_options": {
        "wechat_pay": {
            "openid": "**********",
            "terminal_type": "MINI_PROGRAMA",
            "client_ip": "192.168.0.1"
        }
    },
    "payment_method": "pm_1684807723448795136",
    "capture_method": "automatic"
}

Pedido #

También puede utilizar WeChat Pay a través del proceso de pago alojado en WooshPay. Para admitir pagos, una sesión de pago debe cumplir todas las condiciones siguientes:

  • Los precios de todas las partidas deben estar en la misma moneda. Si tiene artículos en distintas divisas, cree sesiones de pago distintas para cada divisa.
  • Sólo puede utilizar partidas únicas.

Habilitar wechat pay como método de pago

Al crear una nueva sesión de pago, debe:

Añadir Wechat Pay a la lista de tipos_de_método_de_pago. Asegúrese de que todos artículos_de_línea utilizan la misma moneda.

Crear una sesión #

Solicitar

{
    "cancel_url": "https://wooshpay.com",
    "mode": "pago",
    "success_url": "https://wooshpay.com",
    "payment_method_types": [
        "wechat_pay"
    ],
    "line_items": [
        {
            "price_data": {
                "moneda": "CNY",
                "unit_amount": 100,
                "product_data": {
                    "nombre": "fengli",
                    "url": "www.baidu.com"
                }
            },
            "quantity": 1
        }
    ]
}

Respuesta

{
    "id": "cs_1666627733867724800",
    "object": "checkout.session",
    "creado": 1686189991000,
    "livemode": false,
    "currency": "CNY",
    "cliente": "",
    "mode": "pago",
    "estado": "abierto",
    "url": "https://checkouttest.wooshpay.com/pay/cs_test_1666627733867724800?key=pk_test_NTE1OTU5NzQ3NTQ2MTM5ODkzNzcxOktFZ0xlam1KbUxUb2gyUUNqWVVoaGpDSjE2NjkzNDUwMDgxMTE=",
    "cancel_url": "https://wooshpay.com",
    "line_items": {
        "object": "lista",
        "data": [
            {
                "id": "li_1666627733993553920",
                "object": "item",
                "moneda": "CNY",
                "descripción": "fengli",
                "precio": {
                    "id": "price_1666627734022914048",
                    "object": "precio",
                    "creado": 1686189991000,
                    "livemode": falso,
                    "activo": true
                    "moneda": "CNY",
                    "producto": {
                        "id": "prod_1666627734064857088",
                        "objeto": "producto",
                        "creado": 1686189991000,
                        "livemode": falso,
                        "activo": true
                        "nombre": "fengli",
                        "url": "www.baidu.com",
                        "actualizado": 1686189991000
                    },
                    "type": "one_time",
                    "unit_amount": 100,
                    "billing_scheme": "per_unit"
                },
                "quantity": 1,
                "amount_subtotal": 100,
                "importe_total": 100
            }
        ]
    },
    "payment_intent": "pi_1666627734450733056",
    "payment_method_types": [
        "wechat_pay"
    ],
    "payment_status": "unpaid",
    "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"
}

Puedes acceder a la caja a través de la url, y seleccionar pago WeChat. Si el cliente es una página web, generará un código QR y podrás escanear el código para el pago. Si el cliente es un terminal móvil, saltará directamente a la APP de WeChat para realizar el pago.

Siguiente paso #

Puede añadir más funciones a su integración en función de sus necesidades

Crear un Webhook #

Escuche los eventos de su cuenta WooshPay para que su integración pueda desencadenar reacciones automáticamente. Crea un webhook que se centre principalmente en enabled_events y url.

Crear una devolución #

Cree un reembolso para devolver los fondos a su cliente. También puede realizar reembolsos parciales, pero no todos los métodos de pago los admiten. Un reembolso parcial consiste en devolver sólo una parte del importe de la transacción original.

What are your feelings
Updated on agosto 9, 2023