Tarif nol dan risiko nol : Solusi pembayaran bebas visa WeChat berdasarkan kode wechaty + apresiasi?
Seperti yang kita ketahui bersama, kualifikasi pedagang diperlukan untuk mengakses antarmuka pembayaran WeChat. Ada proses peninjauan yang ketat dan diperlukan biaya peninjauan tertentu. Setelah lulus peninjauan, WeChat juga akan membebankan biaya penanganan tertentu untuk setiap transaksi menggunakan layanan bebas visa di platform lain Untuk pembayaran, biaya yang relevan harus dibayar, dan keamanan dana tidak dapat dijamin. Pembayaran bebas visa open source yang ada juga diterapkan dengan memantau notifikasi WeChat di ponsel, yang memerlukan peralatan tinggi dan dengan mudah menyebabkan pengendalian risiko. Solusi ini juga tidak cocok untuk pengembang individu dan situs web yang lebih kecil.
Hasilnya, WPayment muncul. Ini didasarkan pada SDK wechaty yang terkenal untuk memantau pesan WeChat, dan menggunakan mekanisme kode apresiasi untuk mengumpulkan pembayaran. Kode apresiasi dapat memiliki jumlah opsional dan komentar khusus, yang dapat dengan mudah digunakan digunakan untuk jumlah kecil tertentu (Jumlah satu apresiasi tidak boleh melebihi 200 yuan), dan tidak perlu menggunakan jumlah tersebut untuk membedakan pengguna yang berbeda. Pada saat yang sama, kode apresiasi diatur untuk menerima apresiasi dari netizen di seluruh negeri, jadi tidak seperti kode pembayaran. Mudah dikendalikan oleh angin.
Instal menggunakan npm:
npm install --save wpayment
Proses penggunaan dasar adalah:
WPayment
dan panggil metode login()
untuk mendapatkan tautan login WeChat. Harap ubah sendiri menjadi kode QR lalu masuk dengan WeChat penerima pembayaran ;createOrder()
untuk membuat pesanan bila diperlukan, dan mencatat atribut verifyCode
(angka empat digit) dari objek Order
yang dikembalikan;verifyCode
pada kolom "Keterangan", lalu membayar.onPaid()
di parameter metode createOrder()
akan dipanggil. Selain itu, mengingat kesalahan pengoperasian pengguna (seperti lupa memasukkan jumlah yang salah, memasukkan verifyCode
yang salah, membayar setelah waktu pemesanan habis), objek WPayment
juga menyediakan metode queryOrder
untuk memastikan bahwa nama panggilan WeChat pembayar, jumlah pembayaran, dan Nomor transfer WeChat dapat digunakan. Meminta informasi pesanan melalui metode lain. Untuk instruksi lebih rinci, lihat /docs/document.md
.
Demo sederhananya adalah sebagai berikut:
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 ) ;
} ) ;
Proyek ini sepenuhnya gratis dan hanya untuk pendidikan dan pembelajaran dan tidak boleh digunakan untuk tujuan ilegal apa pun.