2012-11-21 4 views
8

जब मुझे पेपैल से अधिसूचना मिलती है, तो मैं पेपैल से यह सुनिश्चित करने के लिए इसे वापस पेपैल भेजता हूं। कोड अच्छी तरह से काम करता है और मुझे कोई समस्या नहीं है:रेल पेपैल मान्य जापानी को सूचित करते हैं

# payment_notifications_controller.rb # notification_validation, line 90 
response = RestClient.post(PAYPAL_CONFIG["url_validate"], params.merge({"cmd" => "_notify-validate"}), :content_type => "application/x-www-form-urlencoded") 

समस्या यह है जब उपयोगकर्ता एक जापानी नाम है। (Paypal से) सूचना प्राप्त होने पर की तरह:

ArgumentError (invalid byte sequence in UTF-8): 
app/controllers/payment_notifications_controller.rb:90::in `notification_validation' 

यह है:

Parameters: {"last_name"=>"\x8F\xBC\x8C\xB4", "payment_cycle"=>"Daily", "next_payment_date".... 

जब मैं Paypal के लिए वापस भेज कोशिश कर रहा हूँ (सुनिश्चित करने के लिए यह Paypal से आया है), मैं यह त्रुटि है जैसे कि RestClient को "\ x8F \ xBC \ x8C \ xB4" पसंद नहीं है। मैंने जोड़ने की कोशिश की: content_type => "shift_jis" और "utf-8", लेकिन मुझे हमेशा यह त्रुटि है।

मैं की तरह कुछ करते हैं: \ x8F \ XBC \ x8C \

params[:last_name] = params[:last_name].encode("UTF-8", "Shift_JIS") 
# now params[:last_name] is 松原 

तब मेरे RestClient.post Paypal पर भेज रहा है, लेकिन Paypal एक त्रुटि (अवैध) वापसी शायद इसलिए है क्योंकि Paypal पाने के लिए "इंतज़ार कर रहा था एक्सबी 4 "और नहीं" 松原 "।

क्या आपको कोई विचार है कि मैं इसे कैसे हल कर सकता हूं?

संपादित करें: मैं भी पर paypal forum

उत्तर

9

तो मुझे लगता है मैं समाधान पोस्ट करें। > पेपैल बटन भाषा एन्कोडिंग> और विकल्प

Use the following drop-down menu to select the encoding used on your website.

Encoding: Shift_JIS

Do you want to use the same encoding for data sent from PayPal to you (e.g., IPN, downloadable logs, emails)?

NO, use: UTF-8

अब मैं पाने के लिए "सत्यापित" में सक्षम हूँ प्रोफ़ाइल> मेरे बेच उपकरण:

विक्रेता पेपैल खाते में जाने के लिए।

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