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