2015-01-19 11 views
5

मेरे पास एक पट्टी खाता है और परीक्षण API कुंजी का उपयोग कर रहा हूं।स्ट्रिप चेकआउट मूल्य त्रुटि - अमान्य इंटीजर

मैं निम्नलिखित जानकारी के साथ एक योजना बनाई है -

{ 
    "amount": 995, 
    "created": 1418800758, 
    "currency": "usd", 
    "id": "c06e1791-1c6a-45fe-9c26-8f0c07dda967", 
    "interval": "month", 
    "interval_count": 1, 
    "livemode": false, 
    "metadata": {}, 
    "name": "Pro2", 
    "object": "plan", 
    "statement_description": null, 
    "statement_descriptor": null, 
    "trial_period_days": null 
} 

मैं अपने प्रोजेक्ट में checkout.js उपयोग कर रहा हूँ। एक बार सभी डेटा भरने के बाद और हम उपर्युक्त योजना के लिए वेतन पर क्लिक करते हैं, यह एक त्रुटि 'अमान्य इंटीजर 994.9 99 99 99 99' उठाता है।

यह त्रुटि $ 9.94, $ 9.96, $ 29.95 और मेरे द्वारा किए गए अन्य मूल्यों के लिए नहीं उठाई गई है।

क्या यह चेकआउट बग या मेरी सेटिंग्स के साथ कुछ करने के लिए है ?? त्रुटि के

स्क्रीनशॉट -

Stripe error message

jsfiddle त्रुटि प्रजनन - http://jsfiddle.net/f30z9uc6/2/

+0

त्रुटि वास्तव में कहां हो रही है? चार्ज या सब्सक्रिप्शन बनाते समय टोकन या सर्वर पर बनाते समय स्ट्रिप चेकआउट पर? क्या आप अपना कोड साझा कर सकते हैं? क्या आप राशि की गणना करने की कोशिश कर रहे हैं और फिर शायद एक गोल त्रुटि समस्या हो सकती है? – koopajah

+0

टोकन बनाने से पहले चेकआउट पर त्रुटि होती है। और कीमत स्थैतिक है। पट्टी योजना से प्राप्त किया गया। – torment32

+0

राशि के रूप में यहां दिखाए गए '995' की राशि: http://jsfiddle.net/4ykh2dh7/ कुछ और चलना चाहिए। क्या आप एक यूआरएल दिखा सकते हैं जहां यह होता है? आपके पास मूल्य को पार्स करना होगा और गलत डेटा – koopajah

उत्तर

15

समस्या यहाँ Javascript में एक चल बिन्दु त्रुटि है। यदि आप अपने jsfiddle के इस अद्यतन संस्करण को देखते हैं तो आप देखेंगे कि क्या हो रहा है और मैंने इसे कैसे ठीक किया। आप अपने गणना के परिणाम को पूर्णांक बनाना सुनिश्चित करने की आवश्यकता आप एक पूर्णांक के साथ अंत:

var amount = Math.round(9.95*100); // gives 995 

जावास्क्रिप्ट और चल बिन्दु गणित के बारे में अधिक पढ़ने के लिए आप The Floating-Point Guide

+1

यह मेरे लिए उपयोगी था पट्टी रकम के साथ। इस तरह काम करता है अगर किसी को इसकी जरूरत है: 'Math.round (TotalPrice.toFixed (2) * 100) ' –

-1

पर गौर करने से पहले कपड़े उतारने को चर भेजना चाहिए आपको अधिकतम तक जाना होगा। 2 दशमलव। तो यह काम करेगा।

क्यों? क्योंकि स्ट्रिप 100 के साथ आपके मान को गुणा करता है और परिणाम एक पूर्णांक होना चाहिए - अन्यथा आपको त्रुटि संदेश मिलता है।

संबंधित मुद्दे