Nulltarif und null Risiko : Visumfreie WeChat-Zahlungslösung basierend auf Wechaty + Wertschätzungscode?
Wie wir alle wissen, sind Händlerqualifikationen erforderlich, um auf die WeChat-Zahlungsschnittstelle zuzugreifen. Es gibt einen strengen Überprüfungsprozess und eine bestimmte Überprüfungsgebühr. Nach bestandener Überprüfung erhebt WeChat auch eine bestimmte Bearbeitungsgebühr Verwenden Sie visumfreie Dienste auf anderen Plattformen. Für die Zahlung müssen entsprechende Gebühren gezahlt werden, und die Sicherheit der Gelder kann nicht garantiert werden. Die bestehende visumfreie Open-Source-Zahlung wird auch durch die Überwachung von WeChat-Benachrichtigungen auf dem Mobiltelefon implementiert, was eine hohe Ausrüstung erfordert und ermöglicht eine einfache Risikokontrolle. Diese Lösungen sind weder für einzelne Entwickler noch für kleinere Websites geeignet.
Als Ergebnis entstand WPayment, das auf dem bekannten Wechaty-SDK zur Überwachung von WeChat-Nachrichten basiert und den Wertschätzungscode-Mechanismus zum Sammeln von Zahlungen verwendet. Der Wertschätzungscode kann einen optionalen Betrag und benutzerdefinierte Anmerkungen enthalten, was praktisch ist Wird für einen bestimmten kleinen Betrag verwendet (der Betrag einer einzelnen Wertschätzung darf 200 Yuan nicht überschreiten), und es besteht keine Notwendigkeit, den Betrag zur Unterscheidung verschiedener Benutzer zu verwenden. Gleichzeitig wird der Wertschätzungscode eingerichtet, um Wertschätzungen von Internetnutzern zu erhalten Im ganzen Land ist es also nicht wie beim Zahlungscode Es ist leicht, durch Wind gesteuert zu werden.
Mit npm installieren:
npm install --save wpayment
Der grundlegende Nutzungsprozess ist:
WPayment
Objekt und rufen Sie login()
auf, um den WeChat-Anmeldelink zu erhalten. Bitte wandeln Sie ihn selbst in einen QR-Code um und melden Sie sich dann mit dem WeChat des Zahlungsempfängers an.createOrder()
aufrufen, um eine Bestellung zu erstellen, und sich verifyCode
(eine vierstellige Zahl) des zurückgegebenen Order
-Objekts notieren.verifyCode
in die Spalte „Bemerkungen“ eingeben und dann bezahlen.onPaid()
-Rückruf im Methodenparameter createOrder()
aufgerufen. Darüber hinaus stellt das WPayment
Objekt unter Berücksichtigung der Fehlbedienung des Benutzers (z. B. Vergessen, den falschen Betrag einzugeben, Eingabe des falschen verifyCode
, Zahlung nach Zeitüberschreitung der Bestellung) auch queryOrder
bereit, um sicherzustellen, dass der WeChat-Spitzname, der Zahlungsbetrag usw. des Zahlers angezeigt werden Die WeChat-Übertragungsnummer kann über andere Methoden abgefragt werden. Weitere detaillierte Anweisungen finden Sie unter /docs/document.md
.
Eine einfache Demo sieht wie folgt aus:
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 ) ;
} ) ;
Dieses Projekt ist völlig kostenlos und dient ausschließlich der Bildung und dem Lernen und darf nicht für illegale Zwecke verwendet werden.