WebMoney WMClasses में "समस्या 2000"

.Net में, वेबमनी इंटरफेस के साथ काम करने के लिए एक अद्भुत ओपनसोर्स WMClasses लाइब्रेरी है। आपका बहुत बहुत धन्यवाद।

अचानक :) शुक्रवार की रात, इस लाइब्रेरी में एक अप्रिय बग पाया गया, जो "2000 की समस्या" की याद दिलाता है। WM मनी ट्रांसफर करने के अनुरोध के जवाब में, WebMoney सेवा ने एक कोड - 102 जारी करना शुरू किया - w3s.request / reqn पैरामीटर के मूल्य में लगातार वृद्धि के लिए शर्त पूरी नहीं की गई। नीचे यह वर्णन किया गया है कि यह क्यों हो रहा है और इसे कैसे ठीक किया जाए।


तथ्य यह है कि वेबमनी इंटरफेस का अनुरोध करते समय, आपको reqn अनुरोध नंबर का उपयोग करना चाहिए, जो लगातार बढ़ रहा होना चाहिए। (अहस्ताक्षरित पूर्णांक, अंकों की अधिकतम संख्या - 15; हमेशा धन हस्तांतरण के लिए पिछले अनुरोध की संख्या से अधिक होना चाहिए !!! संख्या WMID अनुरोध पर हस्ताक्षर करने के संबंध में नीरस है।)

हम WmXmlCmd.cs कोड को देखते हैं
public static long GenerateReqNo(int maxlen) { long reqn = DateTime.Now.ToFileTimeUtc(); string data = reqn.ToString(); if (data.Length > maxlen) { data = data.Remove(0, data.Length - maxlen); // <-   3    } reqn = long.Parse(data); return reqn; } 


नतीजतन, 14 दिसंबर 2012 को 23.06 पर, reqn मूल्य 999999999999999 पर पहुंच गया और 0. पर शुरू हुआ, वृद्धि की आवश्यकता का उल्लंघन किया गया और सेवा ने काम करना बंद कर दिया। केवल वेबमनी समर्थन से संपर्क करके इसे पुनः प्राप्त करने के अनुरोध को हल करना संभव था।

इस कहानी में, यह उत्साहजनक है कि अगली बार यह समस्या 02/15/2016 8:53:20 को उठती है। इसलिए, जिस तरह से reqn उत्पन्न होता है उसे बदलने के लिए अभी भी 4 साल हैं।

सावधान रहें।

Source: https://habr.com/ru/post/In162947/


All Articles