Нулевая ставка и нулевой риск : решение для безвизовых платежей WeChat на основе кода wechaty + благодарности?
Как мы все знаем, для доступа к платежному интерфейсу WeChat требуется квалификация продавца. Существует строгий процесс проверки, и после прохождения проверки WeChat также взимает определенную плату за обработку каждой транзакции. использовать безвизовые сервисы на других платформах. Для оплаты необходимо оплатить соответствующие сборы, и безопасность средств не может быть гарантирована. Существующая безвизовая оплата с открытым исходным кодом также реализуется путем мониторинга уведомлений WeChat на мобильном телефоне, что требует высокого оборудования. и легко обеспечивает контроль рисков. Эти решения не подходят для индивидуальных разработчиков и небольших веб-сайтов.
В результате появился WPayment. Он основан на известном Wechaty SDK для мониторинга сообщений WeChat и использует механизм кода благодарности для сбора платежей. Код благодарности может иметь необязательную сумму и специальные примечания, что может быть удобно. используется для любой указанной небольшой суммы (сумма одной оценки не может превышать 200 юаней), и нет необходимости использовать сумму для различения разных пользователей. В то же время код оценки настроен для получения оценки от пользователей сети. по всей стране, поэтому это не похоже на код оплаты. Ветром легко управлять.
Установите с помощью npm:
npm install --save wpayment
Основной процесс использования:
WPayment
и вызовите метод login()
чтобы получить ссылку для входа в WeChat. Преобразуйте ее в QR-код самостоятельно, а затем войдите в систему с помощью WeChat получателя платежа ;createOrder()
для создания заказа, когда это необходимо, и обратить внимание на verifyCode
(четырехзначное число) возвращаемого объекта Order
;verifyCode
в столбце «Примечания», а затем оплатить.onPaid()
в параметре метода createOrder()
. Кроме того, учитывая неправильные действия пользователя (например, забывание ввести неверную сумму, ввод неправильного verifyCode
, оплата по истечении времени заказа), объект WPayment
также предоставляет метод queryOrder
, чтобы гарантировать, что псевдоним WeChat плательщика, сумма платежа и Номер перевода WeChat можно использовать для запроса информации о заказе другими методами. Более подробные инструкции см. в /docs/document.md
.
Простая демонстрация выглядит следующим образом:
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 ) ;
} ) ;
Этот проект полностью бесплатен, предназначен только для образования и обучения и не может использоваться в каких-либо незаконных целях.