Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

ruby on rails - Can't verify(check) paypal account

I need to verify PayPal account, when user sign_up.

I have function(source - http://curry.byteally.com/finding-verification-status-of-a-paypal-account-ruby-on-rails-paypal-adaptive-accounts-getverifiedstatus/)

I entered my credentials and changed.

I put it i my static_pages_controller(for now).

   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

Added line in my routes.rb

  post "static_pages/verify_paypal"

In my views:

   <%= link_to "verify", static_pages_verify_paypal_path, :method => :post %>

But it constantly gives me text:

    "Gee! sorry! something went seriously wrong"

what mean, that my user isn't registered in PayPal(but it is!).

EDTED From Heroku logs:

←[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)

First question to this line:

    "emailAddress" => params[:paypal] 

Can I change it into

    current_user.email

Second question - Where is problem and what I'm doing wrong ?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The API call structure is sound.

However, when you say you entered your credentials, did you make sure that you are using the right credentials for the right environment? Live credentials, and live accounts do not exist within the sandbox and viceversa. You can't check a live account's status against the checkbox because it simply does not exists in the sandbox "universe".

That would be the first thing to look at. If you feel your environments are correct, can you post the contents of res.content to see what came back from the HTTP call?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...