Conozca WeChat Pay, un monedero digital muy popular entre los clientes de China. #
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 clientes | Consumidores chinos Chinos de ultramar Viajeros chinos |
---|---|
Tratamiento de divisas | CNY, GBP, USD, EUR, HKD |
Divisas de liquidación | GBP, EUR, USD, HKD |
Importe mínimo de transacción | Sin límite |
Importe máximo de la transacción | 50.000 USD |
Reembolsos | ✅ |
Reembolsos parciales | ✅ |
Reembolso parcial múltiple | ✅ |
Contracargo | ❌ |
Subproductos #
Caso de pago | Producto | Descripción de los escenarios de pago |
---|---|---|
Código QR | Pago por Internet | En 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 QR | Pago rápido | En 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 H5 | Pago H5 | En 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 WeChat | Cuenta oficial | Los 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 WeChat | Miniprograma | Otra 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 #
Flujos móviles H5 #
Móvil - En la aplicación WeChat #
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
- API directa
- Pedido
Método de integración | Subproducción de Wechat Pay | valores de la enumeración terminal_type |
---|---|---|
API directa | Pago por Internet | WEB |
API directa | Pago rápido | CÓDIGO_DE_ESCANEO |
API directa | Pago H5 | WAP |
API directa | Pago de la cuenta oficial | CUENTA_OFICIAL |
API directa | Miniprograma | MINI_PROGRAMA |
Método de integración | Subproducción de Wechat Pay | valores de la enumeración terminal_type |
---|---|---|
Pedido | Pago por Internet | No 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. |
Pedido | Pago H5 | No 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:
- Pago por Internet
- Pago H5
- Pago rápido
- 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.