Proceso de solicitud de la interfaz de pago WeChat (método de procesamiento de pago en línea en la plataforma de recopilación de códigos QR)
El pago WeChat es una función utilizada con frecuencia en proyectos de nivel empresarial. Como desarrollador backend, es necesario dominar completamente esta tecnología.
Logotipo; Logotipo
1. Proceso y pasos de la solicitud
Figura 1-1
Registre una cuenta de pago de WeChat, obtenga el APPID del subprograma de WeChat, obtenga la ID del comerciante de WeChat, obtenga la clave privada de la API del comerciante de WeChat y configurar la dirección de devolución de llamada de pago de WeChat, vincular la relación entre el subprograma de WeChat y el pago de WeChat, crear un proyecto SpringBoot, escribir una interfaz de pago en segundo plano, publicar e implementar proyectos de servicios de interfaz, usar el subprograma de WeChat o UniAPP para llamar a la función de pago de WeChat, empaquetar y configurar la interfaz de pago, jwt o distribución de tokens openid. El subprograma WeChat original completa el acoplamiento de pagos
2 Comerciantes registrados
2.1 Plataforma comercial
. Si un comerciante o empresa quiere vender productos a través del pago WeChat, primero debe registrar al comerciante a través de la plataforma WeChat. Después de un registro exitoso, aparecerá la información del comerciante y otras interfaces, incluida información de la cuenta, información comercial, etc. Como se muestra en la Figura 2-1:
Figura 2-1
2.2 ID del comerciante
El ID del comerciante es el único ID en el desarrollo de este proyecto y es el pago de WeChat. La identificación única proporcionada a cada comerciante o comerciante también es una de las credenciales para que los clientes recuperen el pago de WeChat. "Número de comerciante de pago de WeChat" La Figura 2-1 muestra el ID del comerciante.
3. Clave privada de API
Después de registrar exitosamente al comerciante, también puede configurar la clave privada de API en la plataforma WeChat. Como se muestra en la Figura 3-1:
Figura 3-1
La clave privada de API también se denomina clave de pago. Los usuarios necesitan la identificación del comerciante y la clave de API para acceder al fondo de pago de WeChat.
4. Los comerciantes se registran en productos de pago WeChat
Los comerciantes pueden registrarse en productos de pago WeChat según sus necesidades, que incluyen principalmente:
Pago JSAPI: Los comerciantes llaman a la JSAPI proporcionada por la interfaz de pago de WeChat y llaman al módulo de pago de WeChat para completar el cobro en el escenario de pago: el sistema del comerciante genera un código QR de pago de acuerdo con el protocolo de pago de WeChat y luego el usuario utiliza el quotscan de WeChat; quot para completar el pago del mini programa: compartiéndolo con amigos en WeChat Circle o escaneando el código QR para abrir el mini programa, y puede llamar al pago de WeChat para completar el proceso de pago del código de pago: el usuario presenta el código de barras y; Código QR en la billetera WeChat y el comerciante escanea el código de barras del usuario para completar el pago; pago con reconocimiento facial: el usuario pasa el SDK de pago integrado de WeChat que se puede utilizar para el pago de "cepillado facial" en escenarios de pago fuera de línea. SDK de pago por reconocimiento facial en dispositivos sin conexión. Como se muestra en la Figura 4-1:
Figura 4-1
5. Configurar la dirección de devolución de llamada
La dirección de devolución de llamada de pago es la dirección donde el servidor de pago de WeChat devuelve la información de pago al usuario. Si el comerciante firma un contrato para un producto subprograma de WeChat, la dirección de devolución de llamada de pago se puede configurar o no. Esta dirección es el nombre de dominio de la empresa y no es necesario configurarla.
6. Obtenga el APPID del mini programa
Primero vaya al sitio web oficial:
Figura 6-1
Después de tener éxito Al registrarse, puede obtener el mini programa. El APPID único del programa. Como se muestra en la Figura 6-2:
Figura 6-2
7. Vincular pago WeChat y mini programa
Vincular el APPID en la plataforma de pago WeChat. Como se muestra en la Figura 7-1:
Figura 7-1
8. Parte práctica
8.1 Construcción del marco SpringBoot
Primero de todo, cree un proyecto SpringBoot inicializado; escriba el archivo de configuración propiedades/yml en la carpeta de recursos en proyecto/módulo; el entorno de desarrollo y el entorno de producción deben estar aislados en el archivo de configuración, que también incluye servidor, base de datos, Spring y token; , registro, zona horaria, formato json, mybatis-plus, swagger, configuración unificada global de redis, configuración del servidor, configuración del subprograma WeChat.
Controlador de interfaz back-end de infraestructura del proyecto, interacción con configuración de datos front-end configuración del servidor en la nube Configuración Swagger interceptor de interfaz Configuración de pago WeChat CommonConStanumsajaxresultsBaseController página basentitypage interfaz de dominio requerida y parámetros servicio de interfaz de archivo mappermapper: Responsable de la definición del método de interfaz de la capa del controlador. Impl: la lógica de implementación específica de la interfaz. Clase de herramienta de archivo utils Clase de herramienta Json Clase de herramienta de formato de hora Clase de herramienta de inicio de sesión de terceros
8.2 Interfaces relacionadas con pagos de WeChat
8.2.1 Mini Interfaz de inicio de sesión de usuario del programa
Primero, el usuario debe autorizar el inicio de sesión del usuario de WeChat en el mini programa y llamar a la interfaz para obtenerlo. Esta credencial se puede utilizar para intercambiar información del estado de inicio de sesión del usuario, incluido el identificador único del subprograma actual, el identificador único del usuario y la clave de sesión para este inicio de sesión.
El proceso de inicio de sesión específico se muestra en la Figura 8-1:
Figura 8-1
En este momento, se llama a la interfaz del servidor y se envía la solicitud. Los parámetros son como se muestra en la Figura 8-2:
Figura 8-2
Los parámetros devueltos después de que el usuario inicia sesión se muestran en la Figura 8-3:
Figura 8-3
8.2.2 Interfaz de pedidos unificada
Después de que el usuario inicia sesión en el mini programa, se llamará a la interfaz de pedidos unificada al realizar una solicitud de pago en el página del mini programa.
Al llamar a una solicitud de pago, los parámetros de la interfaz de pedido requieren dos partes: una parte es el openid y el appid relacionados con el comerciante y el mini programa, y la otra parte es el precio, el nombre, cantidad y otros parámetros relacionados con el producto.
El siguiente código explica en detalle la interfaz de pago de WeChat. El código está escrito en forma de una interfaz API de estilo REST.
Interfaz de pedido unificada
@ Operación API @ Solicitar mapeo público Resultado Ajax Pedido unificado {//Verificar el inicio de sesión del usuario del mini programa //Consultar información del pedido en la base de datos //Solo se pueden iniciar pedidos no pagados Pago // Compras no pagadas 0 yuanes /* *Establecer parámetros de solicitud relacionados con comerciantes y mini programas* *// Obtener el appid de la cadena del mini programa appid=wxmauil.getappid; wxpayunifieorderequest set appId; nombre del producto string body=sysorderscout .getcourename; body=body.length 40? body.substring:body; wxpayunifieorderequest .set body; //número de pedido wxpayunifiedOrder request.int value); del usuario en el subprograma actual wxpayunifiedorerrequest .set OpenID); //llamar a la clase de servicio de Microsoft wxpayservice wxpayservice=wxpayconfiguration .getpayservice; devolver el resultado de Ajax .success }
8pxpayunifiederrequest .
8.2 .3 Crear interfaz de pedido
Crear interfaz de pedido
Los usuarios pueden realizar pedidos de productos en la página del producto. En este momento, es necesario crear un pedido para que el usuario compre. el producto.
El proceso consiste en solicitar información del usuario, información del producto y otros parámetros a través de la interfaz, crear un nuevo pedido después de un juicio lógico y finalmente devolver los datos requeridos para el pedido.
@API operación@request mapeo público Ajax resultado crear{//WeChat información de usuario//Determinar si se ha comprado el mismo producto. Si es así, no puede crear un nuevo pedido // Después de cumplir las condiciones, inserte datos en la base de datos wxOrderResponse wxOrderResponse=orderservice add; // Si la adición falla, aparecerá el mensaje If{ return Ajax result .}
Cancelar interfaz de pedido
Cuando el usuario llama al pago de WeChat, si hace clic en Cancelar pago en la interfaz de pago, se considerará que ha cancelado el pago. operación de pago del pedido En este momento, la página del pedido debe mostrar el estado de pago del pedido.
Esta interfaz puede utilizar el ID del pedido como parámetro de solicitud, primero determinar si la información del pedido existe en la base de datos, luego limitar los tipos de pedidos que se pueden cancelar y finalmente actualizar el estado de la tabla de la base de datos.
@ Operación de API @ Solicitud de mapeo de resultado de Ajax público Cancelar{// Determinar si el pedido tiene pedidos sys = sysorderservice . if{ return Ajax result;}// Solo los pedidos no pagados pueden. cancelarse si) {devuelve error de Ajax, MyReturnCode. err _ 70001 } sysordersservice cancela resultado de Ajax }
8.
8.2 .5 Interfaz de detalles del pedido
Interfaz de detalles del pedido
Después de generar el pedido, el usuario puede ver los detalles del pedido de productos en la página.
Esta interfaz puede obtener detalles de la base de datos utilizando el ID del pedido, y los datos que se muestran en esta página están determinados por los requisitos comerciales.
@ Operación API @ mapeo de solicitudes @ apimplicitparams}) public*** Resultado Ajax myorderDetail{// Obtener parámetros detallados de la base de datos sysorderdetailresponse=sysorderservice .Obtener detalle; devolver resultado Ajax .Éxito } Lógica de detalles del pedido;
/* * * Procesamiento de parámetros de página de detalles del pedido * @ param orderId * @ devolver respuesta sysorderdetail */@ anular respuesta pública sysorderdetail obtener detalle { SysOrderDetailResponse SysOrderDetailResponse=Mapeador de pedidos .obtener detalle // procesar cadena de página teléfono; num =sysorderdetailresponse.obtiene el número de teléfono móvil; sysorderdetailresponse.set mobile ****#039;phoneNum.substring); //Muestra diferentes datos según los diferentes estados del pedido.
// Calcula el tiempo de pago restante y muestra el valor de retorno sysOrderDetailResponse}
8.
8.2.6 Interfaz de devolución de llamada de pago
La devolución de llamada de pago de WeChat significa que el usuario paga el pago y el proceso de enviar datos al servidor WeChat, y luego el servidor WeChat devuelve los resultados del pago al usuario y al comerciante.
Uno de los enfoques principales es el proceso de pago del usuario, juicio de devolución de llamada de WeChat y modificación de la base de datos.
Interfaz de devolución de llamada de pago
@ Operación de API @ Solicitud de asignación de cadena de notificación pública genera WxPayException { log . wxpayservice.get one); if { if.system order.setorderamount);//Número de pedido de Microsoft system order.setransactionid);//actualizar el servicio de pedido de la base de datos.notify order log; return wxpaynotifyresponse.}fail;}} El método notifyOrder se utiliza para actualizar el estado del pedido en la base de datos después de un pago exitoso.
Método NotifyOrder
@ Override @ Transactional public *** void notifyOrder { //Solo se pueden operar pedidos no pagados, es decir, pedidos con campo is_pay 0 si){/Actualizar el estado del pedido del sistema de pago setispay; mapeador de pedidos del sistema (mapeador de pedidos del sistema.Update byid; //actualizar el estado de la tabla de productos //actualizar la tabla del ciclo de vida del pedido}} En este punto, todo el proceso de pago de WeChat en Spring. El arranque ha sido compartido. Si hay alguna deficiencia, corríjame.
Haga clic para probarlo
.