Ruby on rails rails paypal通知验证日语

Ruby on rails rails paypal通知验证日语,ruby-on-rails,post,encoding,paypal,Ruby On Rails,Post,Encoding,Paypal,当我收到来自Paypal的通知时,我会将其发送回Paypal,以确保它来自Paypal。 代码运行良好,我没有问题: # payment_notifications_controller.rb # notification_validation, line 90 response = RestClient.post(PAYPAL_CONFIG["url_validate"], params.merge({"cmd" => "_notify-validate"}), :content_typ

当我收到来自Paypal的通知时,我会将其发送回Paypal,以确保它来自Paypal。 代码运行良好,我没有问题:

# 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)如下所示:

Parameters: {"last_name"=>"\x8F\xBC\x8C\xB4", "payment_cycle"=>"Daily", "next_payment_date"....
当我尝试将其发送回Paypal(确保它来自Paypal)时,我出现以下错误:

ArgumentError (invalid byte sequence in UTF-8):
 app/controllers/payment_notifications_controller.rb:90::in `notification_validation'
这就像RestClient不喜欢“\x8F\xBC\x8C\xB4”。 我试图添加:content\u type=>“shift\u jis”和“utf-8”,但我总是有这个错误

如果我这样做:

params[:last_name] = params[:last_name].encode("UTF-8", "Shift_JIS")
# now params[:last_name] is 松原
然后我的RestClient.post被发送到Paypal,但Paypal返回一个错误(无效),可能是因为Paypal正在等待获取“\x8F\xBC\x8C\xB4”,而不是”松原".

你知道我怎么解决这个问题吗

编辑:
我也在

上发帖,所以我想我有了解决办法

在卖家paypal帐户中,转到: 配置文件>我的销售工具>贝宝按钮语言编码>更多选项

使用以下下拉菜单选择您的计算机上使用的编码 网站

编码:Shift_JIS

是否要对从PayPal发送给您的数据使用相同的编码 (例如,IPN、可下载日志、电子邮件)

不,使用: UTF-8

现在我可以得到“验证”