Hi Pål Bergström,

I suggest you use paypal plugin which is available
here<http://dist.leetsoft.com/api/paypal/>..
in the sanbox we can generate virtual ipn.. but most of people gave
negavtive feedback about ipn..

let me know anything else....
Thanks
Arun

Sent from Bangalore, KA, India

2009/5/18 Pål Bergström <[email protected]>

>
> Jason wrote:
> > Hi,
> > Did you every get your PayPal IPN script working. If so, did you use a
> > plugin or custom code? Would you be willing to share this code for
> > reference? I am looking to accomplish the same task as you.
> >
> > Thanks,
> > Jason
> >
> > On Aug 20 2008, 10:26�am, P�l Bergstr�m <rails-mailing-l...@andreas-
>
> This is what I have as a IPN script.
>
> [code]
>
>  if request.post?
>
>
>
>
>  #new
>  @params = params
>  @params[:cmd] = "_notify-validate"
>  @params.delete(:action)
>  @params.delete(:controller)
>
>  url = URI.parse("https://www.paypal.com/cgi-bin/webscr";)
>  req = Net::HTTP::Post.new(url.path)
>  req.set_form_data(@params)
>  sock = Net::HTTP.new(url.host, url.port)
>  sock.use_ssl = true
>  response = sock.start {|http| http.request(req)}
>
>  item_name = params[:item_name]
>  payment_status = params[:payment_status]
>  payment_amount = params[:mc_gross]
>  payment_currency = params[:mc_currency]
>  payer_email = params[:payer_email]
>  receiver_email = params[:receiver_email]
>  txn_id = params[:txn_id]
>
>
>  if response
>
>    @user = User.find_by_email(payer_email)
>
>    if @user
>      #find account and update
>      @account = Account.find_by_user_id(@user.id)
>      unless @account
>        @account = Account.new()
>      end
>      @account.status = 'Init'
>    end
>
>    if response.body == 'VERIFIED'
>        if payment_status == 'Completed'
>          @date = Date.today() + 365
>          @account.ipn = 'Completed'
>          @account.status = 'Completed'
>          @account.amount = payment_amount
>          @account.paypal_id = txn_id
>          @account.expires = @date
>          @account.save
>          @user.status = "Open"
>          @user.expires = @date
>          @user.save(false)
>        else
>          @account.status = 'Not Verified'
>          @account.save
>          @account.update_attribute(:ipn,'Pending')
>        end
>    else
>        @account.status = 'Not-Passed'
>        @account.save
>    end
>
>  end
> end
>
> render :nothing => true
>
> [/code]
> --
> Posted via http://www.ruby-forum.com/.
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to