Tasa cero y riesgo cero : ¿Solución de pago sin visa WeChat basada en el código de apreciación wechaty +?
Como todos sabemos, se requieren calificaciones del comerciante para acceder a la interfaz de pago de WeChat. Existe un proceso de revisión estricto y se requiere una determinada tarifa de revisión. Después de pasar la revisión, WeChat también cobrará una determinada tarifa de gestión por cada transacción. utilice servicios sin visa en otras plataformas Para el pago, se deben pagar las tarifas correspondientes y no se puede garantizar la seguridad de los fondos. El pago sin visa de código abierto existente también se implementa mediante el monitoreo de notificaciones de WeChat en el teléfono móvil, lo que requiere un alto equipo. y provoca fácilmente el control de riesgos. Estas soluciones tampoco son adecuadas para desarrolladores individuales y sitios web más pequeños.
Como resultado, nació WPayment. Se basa en el conocido SDK de wechaty para monitorear los mensajes de WeChat y utiliza el mecanismo del código de agradecimiento para cobrar los pagos. El código de agradecimiento puede tener una cantidad opcional y comentarios personalizados, que pueden ser convenientes. se utiliza para cualquier cantidad pequeña especificada (el monto de una apreciación única no puede exceder los 200 yuanes) y no es necesario usar la cantidad para distinguir a diferentes usuarios. Al mismo tiempo, el código de apreciación está configurado para recibir el reconocimiento de los internautas. En todo el país, por lo que no es como un código de pago. Es fácil de controlar con el viento.
Instalar usando npm:
npm install --save wpayment
El proceso de uso básico es:
WPayment
y llame login()
para obtener el enlace de inicio de sesión de WeChat. Conviértalo usted mismo en un código QR y luego inicie sesión con el WeChat del beneficiario .createOrder()
para crear un pedido cuando sea necesario y anotar verifyCode
(un número de cuatro dígitos) del objeto Order
devuelto;verifyCode
en la columna "Observaciones" y luego pagar.onPaid()
en el parámetro del método createOrder()
. Además, considerando el mal funcionamiento del usuario (como olvidar ingresar la cantidad incorrecta, ingresar el verifyCode
incorrecto, pagar después de que se agote el tiempo de espera del pedido), el objeto WPayment
también proporciona queryOrder
para garantizar que el apodo de WeChat del pagador, el monto del pago y Se puede utilizar el número de transferencia de WeChat. Consulte la información del pedido a través de otros métodos. Para obtener instrucciones más detalladas, consulte /docs/document.md
.
Una demostración simple es la siguiente:
const WPayment = require ( 'wpayment' ) . default ;
const qrcode = require ( 'qrcode' ) ;
let intervalID , timeLeft = 300 ;
const payment = new WPayment ( ) ;
payment . login ( ( linkGetter ) => {
// 登录请求回调
const link = linkGetter ( ) ;
qrcode . toString ( link , { type : 'terminal' } , ( error , result ) => {
if ( error ) {
console . log ( error ) ;
return ;
}
console . clear ( ) ;
console . log ( '请扫描二维码登录微信:' , 'n' ) ;
console . log ( result ) ;
} )
} , ( nickname ) => {
// 登录成功回调
console . clear ( ) ;
console . log ( nickname , '已登录' ) ;
const order = payment . createOrder ( '0.02' , ( orderID ) => {
// 订单支付成功回调
clearInterval ( intervalID ) ;
console . log ( 'n订单 ' + orderID + ' 已支付!' ) ;
console . log ( '支付人微信昵称:' , order . payer ) ;
console . log ( '支付时间:' , order . paidTime . toLocaleString ( ) ) ;
console . log ( '微信订单号:' , order . transID ) ;
} , ( error ) => {
// 订单支付失败(系统错误、主动取消或订单超时未支付)回调
console . log ( error ) ;
clearInterval ( intervalID ) ;
} , 300 ) ;
intervalID = setInterval ( ( ) => {
timeLeft -= 1 ;
if ( timeLeft <= 0 ) {
clearInterval ( intervalID ) ;
return ;
}
console . clear ( ) ;
console . log ( '创建了一笔新订单,金额 0.02 元,动态码为 ' + order . verifyCode ) ;
console . log ( '请在' , timeLeft , '秒内完成支付' ) ;
} , 1000 ) ;
} , ( error ) => {
// 登录失败回调
console . log ( error ) ;
} ) ;
Este proyecto es completamente gratuito y está destinado únicamente a la educación y el aprendizaje y no puede utilizarse con fines ilegales.