nezha-docs
nombre | puerta | Acciones de apoyo | devolución de llamada de soporte | Observación |
---|---|---|---|---|
alipay_app | Pago de la aplicación Alipay | Pago/Consulta de pago/Reembolso | pagar | |
alipay_qr | Pago con código de escaneo Alipay | Pago/Consulta de pago/Reembolso | pagar | |
alipay_wap | Pago del sitio web móvil Alipay | Pago/Consulta de pago/Reembolso | pagar | |
alipay_web | Pago del sitio web de PC Alipay | Pago/Consulta de pago/Reembolso | pagar | |
wechat_app | Pago de la aplicación WeChat | Pago/Consulta de pago/Reembolso/Consulta de reembolso | Aviso de pago/Aviso de reembolso | |
wechat_h5 | Pago WeChat H5 | Pago/Consulta de pago/Reembolso/Consulta de reembolso | Aviso de pago/Aviso de reembolso | Función incorporada para capturar enlaces de pago |
wechat_mina | Pago del Mini Programa WeChat | Pago/Consulta de pago/Reembolso/Consulta de reembolso | Aviso de pago/Aviso de reembolso | |
wechat_oficial | Pago de cuenta oficial de WeChat | Pago/Consulta de pago/Reembolso/Consulta de reembolso | Aviso de pago/Aviso de reembolso | |
wechat_qr | Pago del código de escaneo de WeChat | Pago/Consulta de pago/Reembolso/Consulta de reembolso | Aviso de pago/Aviso de reembolso | |
unión_web | Pago web UnionPay | Pago/Consulta de pago | aviso de pago | versión anterior |
aplicación_union | Pago web UnionPay | pagar | aviso de pago | versión anterior |
pago_express_paypal | Pago exprés con PayPal | Pago/Consulta de pago | aviso de pago | inestable |
pingan_wechat_h5 | Pago Ping An Bank WeChat H5 | Pago/Consulta de pago/Reembolso | pagar | |
wechatoversea_oficial | Pago de cuenta pública transfronteriza de WeChat | Pago/Consulta de pago/Reembolso | pagar |
Al conectarse a pagos de terceros, especialmente cuando se conecta a varios pagos de terceros, necesita leer documentos de terceros y dedicar mucho tiempo a ensamblar y depurar parámetros, como llamar a un tercero para realizar un pedido y crear un pago Si necesita conectarse a WeChat y Alipay al mismo tiempo, entonces necesita recopilar documentos, lo que se puede imaginar que es muy problemático (en realidad, está bien ... hhh ...).
Este componente proporciona tres partes para comunicarse con terceros:
Cada parte se divide en diferentes acciones. Cada acción está vinculada a un formulario fijo (Formulario) y el contenido de cada formulario es fijo.
Por ejemplo, cuando llama activamente a un tercero para realizar un pedido y crear un pago (ChargeRequest), el formulario que utiliza es ChargeRequestForm
. Después de completar el formulario y pasar el componente, el componente puede procesar los parámetros y llamar al tercero. -pago de fiesta.
De esta manera, solo necesita comprender el contenido del formulario del componente para conectarse a múltiples pagos de terceros, de una vez por todas (inexistente hhh).
Aquí tomamos como ejemplo el pago del sitio web de PC de Alipay. Si necesita utilizar otras pasarelas de pago, solo necesita modificar $gateway
ingresada al crear una instancia Cashier
.
Tenga en cuenta que la unidad monetaria base utilizada por el componente son los centavos.
<?php
use Runner NezhaCashier Cashier ;
// 按格式组装好配置
$ config = [
' app_id ' => ' xxxx ' ,
' app_private_key ' => ' xxxxx ' ,
' alipay_public_key ' => ' xxxxx ' ,
];
// 创建实例, 传入要使用的 Gateway
$ cashier = new Cashier ( ' alipay_web ' , $ config );
Crear pago
<?php
// 组装 ChargeRequestForm
$ data = [
' order_id ' => ' 151627101400000071 ' ,
' subject ' => ' testing ' ,
' amount ' => 1 ,
' currency ' => ' CNY ' ,
' description ' => ' testing description ' ,
' return_url ' => ' https://www.baidu.com ' ,
' expired_at ' => ' 2018-01-23 19:00:00 ' ,
];
$ form = $ cashier -> charge ( $ data );
// 以 laravel 为例
return redirect ( $ form -> get ( ' charge_url ' ));
cheque pago
<?php
$ form = $ cashier -> query ([
' order_id ' => ' 151627101400000071 ' ,
]);
var_dump ( ' paid ' === $ form -> get ( ' status ' ));
recibir notificaciones
<?php
$ form = $ cashier -> notify ( ' charge ' );
var_dump ( ' paid ' === $ form -> get ( ' status ' ));
var_dump ( $ form -> get ( ' trade_sn ' )); // 取得第三方交易号
Reembolso
<?php
$ form = $ cashier -> refund ([
' order_id ' => ' 151627101400000071 ' ,
' refund_id ' => ' 3151627101400000071 ' ,
' total_amount ' => 1 ,
' refund_amount ' => 1 ,
]);
Nombre del campo | ¿Es necesario? | Descripción del campo | Observación |
---|---|---|---|
id_pedido | Sí | Número de orden | |
sujeto | Sí | Título del pedido | |
cantidad | Sí | Monto del pedido | Tenga en cuenta que algunos canales de pago tienen un límite superior en el monto. |
divisa | Sí | Moneda del pedido | Presta atención a los canales de pago. |
descripción | Sí | Descripción del pedido | Los canales de pago tendrán diferentes límites de longitud |
ip_usuario | No | IP de usuario | |
URL_retorno | No | dirección de devolución de llamada | Se debe rellenar el canal de pago tipo web |
mostrar_url | No | dirección para mostrar | |
cuerpo | No | Detalles del pedido | Debería eliminar este parámetro |
caducado_en | No | tiempo de vencimiento | marca de tiempo unix |
creado_en | No | tiempo de creación | Marca de tiempo de Unix, ¿no puedes creer que necesites esto? |
Aún quedan otros por agregar...
P : ¿Cuáles son las ventajas en comparación con otros SDK?
R : No importa cuán elegante o fácil de usar sea el SDK, la mayoría de ellos requieren que pase los parámetros de acuerdo con los nombres de los parámetros de terceros. Luego debe leer la documentación y realizar mucho procesamiento en el. código Lo que quiero es que, después de recuperar el pedido de la base de datos, se pueda procesar una vez para acceder a múltiples pagos.
P : ¿Es innecesario leer los documentos de pago de terceros?
R : No, le sugiero que aún necesite revisarlo, y algunos pagos en el componente (como la cuenta oficial de WeChat) deben pasar algunos parámetros especiales. El componente simplemente lo ayuda a resolver el molesto problema de las llamadas.
MIT