当用户注册时,我需要验证 PayPal 帐户。
我输入了我的凭据并进行了更改。
我把它放在我的 static_pages_controller 中(暂时)。
def verify_paypal
...
//change:
if res.status == 200
@xml = XmlSimple.xml_in(res.content)
#check if the status node exists in the xml
if @xml['accountType']!=nil
account_type = @xml['accountType'][0]
if account_type.to_s() == "Business"
render :text => "Business account!"
elseif account_type.to_s() == "Premier"
render :text => "Premier Account!"
elseif account_type.to_s() == "Personal"
render :text => "Personal account!"
else
render :text => "Account type not null but not a valid PayPal account type."
end
end
在我的 routes.rb 中添加了行
post "static_pages/verify_paypal"
在我看来:
<%= link_to "verify", static_pages_verify_paypal_path, :method => :post %>
但它不断给我文本:
"Gee! sorry! something went seriously wrong"
什么意思,我的用户没有在 PayPal 中注册(但它是!)。
编辑 来自 Heroku 日志:
←[33m2012-07-15T17:22:56+00:00 app[web.1]:←[0m Started POST "/static_pages/verify_paypal" for 46.119.153.97 at 2012-07-15 17:22:56 +0000
←[33m2012-07-15T17:22:56+00:00 app[web.1]:←[0m Processing by StaticPagesController#verify_paypal as HTML
←[33m2012-07-15T17:22:56+00:00 app[web.1]:←[0m Parameters: {"authenticity_token"=>"xnW29ekJqp7qBNrvIZJjPSh05AMdiHWNQMvLZhevCig="}
←[36m2012-07-15T17:22:57+00:00 heroku[router]:←[0m POST sharp-cloud-3895.herokuapp.com/static_pages/verify_paypal dyno=web.1 queue=0 wait=0ms service=1058ms status=200 bytes=42
←[33m2012-07-15T17:22:57+00:00 app[web.1]:←[0m Rendered text template (0.0ms)
←[33m2012-07-15T17:22:57+00:00 app[web.1]:←[0m Completed 200 OK in 1046ms (Views: 6.7ms | ActiveRecord: 2.7ms)
这一行的第一个问题:
"emailAddress" => params[:paypal]
我可以把它改成
current_user.email
第二个问题 - 问题在哪里,我做错了什么?
最佳答案
API调用结构合理。
但是,当您说您输入了您的凭据时,您是否确保您在正确的环境中使用了正确的凭据? 沙箱中不存在实时凭证和实时帐户,反之亦然。您无法根据复选框检查真实账户的状态,因为它根本不存在于沙盒“宇宙”中。
这将是首先要看的东西。如果您觉得您的环境是正确的,您可以发布 res.content
的内容以查看从 HTTP 调用返回的内容吗?
关于ruby-on-rails - 无法验证(检查) Paypal 账户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11491352/