معدل صفر ومخاطر صفر : حل الدفع بدون تأشيرة 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 ) ;
} ) ;
هذا المشروع مجاني بالكامل وهو مخصص للتعليم والتعلم فقط ولا يجوز استخدامه لأية أغراض غير قانونية.