nov / paypal-express Goto Github PK
View Code? Open in Web Editor NEWRuby Gem for PayPal Express Checkout API
License: MIT License
Ruby Gem for PayPal Express Checkout API
License: MIT License
How can I submit the cart items so the customer can see them in the PayPal cart?
payment_request = Paypal::Payment::Request.new(
:currency_code => :EUR,
:tax => 19.0,
:shipping => 5.95,
:amount => invoice_total,
:items => ????,
:allow_note => true,
:description => current_cart.cart_identifier,
:country => "Germany",
:notify_url => APP_CONFIG[:paypal_notify]
)
@response = request.setup(
payment_request,
APP_CONFIG[:paypal_success],
APP_CONFIG[:paypal_cancel]
)
I have set the notify_url as below, but paypal doesn't send any notification on sandbox, I checked the paypal ipn history, its empty even I cancelled profile on paypal sandbox.
As for paypal checkout api, it should send the IPN notification but it doesn't.
def client
Paypal::Express::Request.new PAYPAL_CONFIG
end
def payment_request
request_attributes = if self.recurring?
{
billing_type: :RecurringPayments,
billing_agreement_description: DESCRIPTION[:recurring],
notify_url: ipn_path
}
end
response = client.setup(
payment_request,
return_url,
cancel_url,
pay_on_paypal: true,
no_shipping: true
)
def ipn_path
Rails.application.routes.url_helpers.notification_url(secret: APP_CONFIG[:paypal_secret], host: APP_CONFIG[:domain])
end
I am trying to set up a paypal express chechout. When I switch from sandbox to production I get a paypal security error.
PayPal API Error: 'Security error' # [#"10002", :SHORTMESSAGE=>"Security error", :LONGMESSAGE=>"Security header is not valid", :SEVERITYCODE=>"Error"}, @error_code="10002", @severity_code="Error", @long_message="Security header is not valid", @short_message="Security error">]
Everything works well in sandbox mode, I have also contacted paypal and they have assured me my keys are not sandbox/test keys. When looking for this error on stack overflow most people say check keys. which I have done, I have also issued new ones just to be sure. The other suggestion is that I am posting to the wrong url but that is something handled by the gem so I don't think of as an issue.
Has anyone else had these problems?
have any suggestions
Hey, since it's quite a critical gem for everyone using it it would be nice if following changes from version to version would be a little easier. Adding a Changelog could help a lot with that.
What do you say @nov?
Thank you for a great & useful gem.
Recurring payment will create a unique Profile ID. How can we use this profile id and query for detail of information of this Profile.
Paypal mentioned that we can use "TransactionSearch", how to use this action with gem paypal-express. Thanks
Refer to: https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECRecurringPayments/
site_url = Rails.application.config.site_url
request = Paypal::Express::Request.new(
:username => "username",
:password => "password",
:signature => "signature"
)
payment_request = Paypal::Payment::Request.new(
:currency_code => :USD,
:amount => params[:amount].to_i,
:description => "MPay2Park initial amount"
)
response = request.setup(
payment_request,
"http://#{site_url}/wallets/thank_you",
"http://#{site_url}/wallets/cancel"
)
I'm using Rails 3.1 rc4
When running the example code (see https://github.com/nov/paypal-express/wiki/Recurring-Payment)
I suddenly getting errors (since 30 augustus 2012) when making a call to
payment_request = Paypal::Payment::Request.new(
:currency_code => :EUR,
:billing_type => :RecurringPayments,
:billing_agreement_description => "My billing agreement"
)
/home/gummybears/bundler/common/ruby/1.9.1/gems/rest-client-1.6.7/lib/restclient/payload.rb:109:in close': undefined method
closed?' for #Hash:0xa172b7c (NoMethodError)
from /home/gummybears/bundler/common/ruby/1.9.1/gems/rest-client-1.6.7/lib/restclient/request.rb:66:in ensure in execute' from /home/gummybears/bundler/common/ruby/1.9.1/gems/rest-client-1.6.7/lib/restclient/request.rb:66:in
execute'
from /home/gummybears/bundler/common/ruby/1.9.1/gems/rest-client-1.6.7/lib/restclient/request.rb:33:in execute' from /home/gummybears/bundler/common/ruby/1.9.1/gems/restclient_with_cert-0.0.8/lib/restclient_with_cert.rb:17:in
post'
from /home/gummybears/bundler/common/ruby/1.9.1/gems/paypal-express-0.5.0/lib/paypal/nvp/request.rb:43:in post' from /home/gummybears/bundler/common/ruby/1.9.1/gems/paypal-express-0.5.0/lib/paypal/nvp/request.rb:36:in
block in request'
from /home/gummybears/bundler/common/ruby/1.9.1/gems/paypal-express-0.5.0/lib/paypal/nvp/request.rb:47:in handle_response' from /home/gummybears/bundler/common/ruby/1.9.1/gems/paypal-express-0.5.0/lib/paypal/nvp/request.rb:35:in
request'
from /home/gummybears/bundler/common/ruby/1.9.1/gems/paypal-express-0.5.0/lib/paypal/express/request.rb:28:in setup' from recurring.rb:30:in
$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
$ bundle list
Gems included by the bundle:
To get details for recurring billing profiles, I'm making calls like this:
Paypal::Express::Request.new(@credentials).subscription(profile_id).recurring
And I'm getting warnings like this:
Ignored Parameter (Paypal::Express::Response): TRIALBILLINGPERIOD=Month
Ignored Parameter (Paypal::Express::Response): TRIALBILLINGFREQUENCY=1
Ignored Parameter (Paypal::Express::Response): TRIALTOTALBILLINGCYCLES=6
Ignored Parameter (Paypal::Express::Response): TRIALCURRENCYCODE=USD
Ignored Parameter (Paypal::Express::Response): TRIALAMT=7.00
Ignored Parameter (Paypal::Express::Response): TRIALSHIPPINGAMT=0.00
Ignored Parameter (Paypal::Express::Response): TRIALTAXAMT=0.00
I'm guessing the response from PayPal contain parameters that
we're not expecting.. perhaps unknown parameters should be
ignored more silently? :)
I'm happy to make the changes necessary and submit a pull request,
but I'm not sure where to start looking.
Cheers!
Paul
I've made an order with a complete address, and got only this for details.ship_to
:
@ship_to=
#<Paypal::Payment::Response::ShipTo:0x00000005174378
@owner=nil,
@status=nil,
@name="My Home",
@zip="95131",
@street="That street, 100",
@city="San Jose",
@state="CA",
@country_code="US",
@country_name="United States"
>
There's no street2 field.
Also, there's no doc for the gem specifying what fields I can expect on response objects, or set in the request objects.
Phone numbers would be nice to have added:
Paypal::Express: Ignored Parameter (Paypal::Express::Response): PHONENUM=XXX-XXX-XXXX
The site on Heroku with example of this gem is not working... seems like 5XX error.
Hi, I've been trying to set up paypal-express into my app but I have a couple of questions:
I have a working version with rails 3.2.12 I can submit if you want to upgrade the repo.
Since version 53.0, a number of fields have been deprecated.
Examples:
SetExpressCheckout
AMT => PAYMENTREQUEST_0_AMT
CURRENCYCODE => PAYMENTREQUEST_0_CURRENCYCODE
Hello,
My question: is when I am using Instant Payment I should execute "Complete the transaction" to finish the payment flow, but I don't understand what is "payment_request" variable and how it should looks.
response = request.checkout!(
token,
payer_id,
payment_request
)
response.payment_info
Will appreciate if anybody could explain me what "payment_request" variable is.
Many thanks.
Hello,
I am wondering is there a reason why the gem is using such an old version of the Paypal Api (88.0). I believe the latest Version on Paypal is 119.
I ask as our support contact at Paypal has informed us we should be using a more updated version.
Thanks
I'm noticing that lately half the recurring payments I take in are not being paid. So, the workflow that is occurring is:
I've checked and there's no way to code against the Paypal summary because of the delay in payment. What would happen is that all users would be denied services until a payment is verified. But, this could be very slow, especially in the case of waiting up to 24 hours for a payment to be processed. There also appears to be a payment/time stamp issue on payment collections depending on how close to midnight the payment is processed.
So, what I'm trying to find out is there anyone out there that has seen this type of issue and how are you coding against these non-payment scenarios? Are you creating an hourly recheck?
Any help would be appreciated. I love this gem and I'd like to not have to change it.
I dont know if Im wrong, but isnt this gem supposed to redirect you to paypal for processing the payment on the instant payment
?
I have copied all your code from wiki and happens that it seems to work but do not redirect anything to paypal.
Thanks in advance
I'm trying to setup a recurring payment, but I get an "Security Error" with long message "Security header is not valid"
I'm using the code from the wiki here: https://github.com/nov/paypal-express/wiki/Recurring-Payment
I've double checked the credentials (username, password, signature) but they seem fine.
Any ideas why this happens?
Here's the output from ex.response
:
=> #<Paypal::Exception::APIError::Response:0x4f19f10 @raw={:TIMESTAMP=>"2014-01-18T09:13:58Z", :CORRELATIONID=>"dab969813aed6", :ACK=>"Failure", :VERSION=>"88.0", :BUILD=>"9285531", :L_ERRORCODE0=>"10002", :L_SHORTMESSAGE0=>"Security error", :L_LONGMESSAGE0=>"Security header is not valid", :L_SEVERITYCODE0=>"Error"}, @ack="Failure", @build="9285531", @colleration_id="dab969813aed6", @timestamp="2014-01-18T09:13:58Z", @Version="88.0", @order_time=nil, @pending_reason=nil, @payment_status=nil, @payment_type=nil, @reason_code=nil, @transaction_type=nil, @details=[#<Paypal::Exception::APIError::Response::Detail:0x4f1f328 @raw={:ERRORCODE=>"10002", :SHORTMESSAGE=>"Security error", :LONGMESSAGE=>"Security header is not valid", :SEVERITYCODE=>"Error"}, @error_code="10002", @severity_code="Error", @long_message="Security header is not valid", @short_message="Security error">]>
Hi all,
anybody can clarify what is the meaning of username, password, signature ??? in
request = Paypal::Express::Request.new(
:username => SET_YOUR_OWN ,
:password => SET_YOUR_OWN,
:signature => SET_YOUR_OWN
)
and if I can use a Client ID and Secret in authentication process.
Thanks.
Hi, can you provide some production setup instructions? BTW, I was able to get the PayPal sandbox working. However, when I t checkout in the production setup, it immediately redirects to the to the root URL. Also, I have checked all the logs and the only thing that I can see is 'Completed 302'. At this point, I'm guessing that the production credentials haven't been properly enabled by PayPal.
-Conrad
Hi there,
As far as I see (https://github.com/nov/paypal-express/blob/97971f05605b0bf56ba60219017bdaeaabe23d0d/lib/paypal/payment/request.rb) there is no way atm to send shipping address details to PayPal on request with paypal-express gem, right?
From PayPal documentation it is possible:
&PAYMENTREQUEST_0_SHIPTONAME=...
&PAYMENTREQUEST_0_SHIPTOSTREET=...
&PAYMENTREQUEST_0_SHIPTOCITY=...
&PAYMENTREQUEST_0_SHIPTOSTATE=CA
&PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE=US
&PAYMENTREQUEST_0_SHIPTOCOUNTRYNAME=United%20States
&PAYMENTREQUEST_0_SHIPTOZIP=94666
&PAYMENTREQUEST_0_ADDRESSID=...
&PAYMENTREQUEST_0_ADDRESSSTATUS=Confirmed
Would be nice to have
response = paypal_request.setup(payment_request, :pay_on_paypal => true)
Hi, in order to go live with my paypal account i have to follow those steps?
https://developer.paypal.com/webapps/developer/docs/classic/lifecycle/goingLive/
Which operation should i do to switch form sendbox to production environments?
Thank you
r = Paypal::NVP::Request.new(:username => PAYPAL[:username], :password => PAYPAL[:password], :signature => PAYPAL[:signature])
r.request('RefundTransaction', {'TRANSACTIONID' => '2VV74337KH776410C', 'REFUNDTYPE' => 'Full'})
{:REFUNDTRANSACTIONID=>"1E530441XU804092F", :FEEREFUNDAMT=>"1.16", :GROSSREFUNDAMT=>"40.00", :NETREFUNDAMT=>"38.84", :CURRENCYCODE=>"USD", :TOTALREFUNDEDAMOUNT=>"40.00", :TIMESTAMP=>"2011-05-18T21:43:15Z", :CORRELATIONID=>"d9cdfc1171d5c", :ACK=>"Success", :VERSION=>"69.0", :BUILD=>"1882144"}
Would love to have something like this
req = Paypal::Express::Request.new(:username => PAYPAL[:username], :password => PAYPAL[:password], :signature => PAYPAL[:signature])
refund = Paypal::Refund::Request.new(:transaction_id => '2VV74337KH776410C', :type => :full)
or
refund = Paypal::Refund::Request.new(:transaction_id => '2VV74337KH776410C', :type => :partial, :amt => '10')
req.setup(refund).refund!
Hi,
I am using your gem to enable recurring payments. Looking at Ryan Bates screencast #289 using the paypal-recurring gem
I use your sample code (thanks, which helps a lot) and implemented steps 1-4. But I still have to implement step 5
where the customer actually subscribes to the selected plan.
I looked at the source code of your gem, looked at the Paypal NVP API but I am unable to find the correct call to make.
Hope you can help
Thanks
First of all, I want to thank you for a wonderful library. It is just what I was looking for. Pure way to execute simple paypal payment :)
I'm facing the problem how to get 'payment_request' var in "successful_payment" action,
def successful_payment
response = request.checkout!(
params[:token],
params[:PayerID],
payment_request
)
end
response.payment_info
#error: payment_request is not defined
end
How can I move payment_request
, which is in my Instant payment request action(if I understand this correctly) to this one? Thank you so much. Any thoughts would be great!
When trying to register transaction I get:
Paypal::Exception::APIError - PayPal API Error: 'Version error'
Full message says that version is not supported. I tried setting Paypal.api_version
to latest and different values and it doesn't help.
This started happening suddenly yesterday. It was working fine few days ago.
full code of method
order = @order
if(APP_CONFIG["paypal"]["sandbox"])
Paypal.sandbox!
end
express_request = Paypal::Express::Request.new(
:username => APP_CONFIG["paypal"]["api_username"],
:password => APP_CONFIG["paypal"]["api_password"],
:signature => APP_CONFIG["paypal"]["api_signature"]
)
logger.info "==PPP Express::Request: #{express_request}"
paypal_options = {
no_shipping: true, # if you want to disable shipping information
allow_note: false, # if you want to disable notes
pay_on_paypal: true # if you don't plan on showing your own confirmation step
}
logger.info "==PPP paypal_options: #{paypal_options}"
payment_request = Paypal::Payment::Request.new(
:currency_code => "PLN", # if nil, PayPal use USD as default
:description => order.pack.name, # item description
:quantity => 1, # item quantity
:amount => order.total.round(2).to_f,
:invoice_number => (order.id + 100000),
:notify_url => APP_CONFIG["paypal"]["ipn_notify_url"]
)
response = express_request.setup(
payment_request,
"http://bookrage.org/paypal/success/#{order.return_token}",
"http://bookrage.org/paypal/cancel/#{order.return_token}",
paypal_options # Optional
)
logger.info "==PPP response.redirect_uri: #{response.redirect_uri}"
return response.redirect_uri
Still, example curl from paypal page works on sandbox event with my credentials
curl https://api-3t.sandbox.paypal.com/nvp \
> -s \
> --insecure \
> -d USER=platfo_1255077030_biz_api1.gmail.com \
> -d PWD=1255077037 \
> -d SIGNATURE=Abg0gYcQyxQvnf2HDJkKtA-p6pqhA1k-KTYE0Gcy1diujFio4io5Vqjf \
> -d METHOD=SetExpressCheckout \
> -d VERSION=78 \
> -d PAYMENTREQUEST_0_PAYMENTACTION=SALE \
> -d PAYMENTREQUEST_0_AMT=19 \
> -d PAYMENTREQUEST_0_CURRENCYCODE=USD \
> -d cancelUrl=http://www.example.com/cancel.html \
> -d returnUrl=http://www.example.com/success.html
TOKEN=EC%2d6VH883273N101092R&TIMESTAMP=2016%2d07%2d14T21%3a04%3a57Z&CORRELATIONID=c34496e55ed38&ACK=Success&VERSION=78&BUILD=000000%
I need to add SOLUTIONTYPE=Sole to the request, so that users can just use a credit card, and not be PayPal members, to pay. Has anyone addressed that requirement -- adding additional arguments to a Request?
I tried searching for some method, in exception object, but I did not find it:
e.methods.grep /message/
I just get message
method. But that message says:
PayPal API Error: 'Transaction refused because of an invalid argument. See additional error messages for details.'
After I complete the payment, I'm not receiving the shipping address of the customer. Is this an issue with the gem or the paypal api?
Hi,
I use Paypal::Payment::Recurring
See the object : http://pastie.org/private/fwbhm8tq3xeic0osxvswqw
But Its doesn't charge the "first month" at the "start date", because aggregate_amount is 0.
How to pay the currently month ?
Regards
Hi Nov
There is a way to pass options like "HDRIMG", "LOCALECODE" or "BRANDNAME" to Paypal Express Request setup?
Best Regards!
Castilhor
Hi,
How to update a recurring payment profile? Paypal API has supported for this functionality. Look at: Paypal Api Docs
Is there any plans to implement UpdateRecurringPaymentsProfile API ?
Hi,
I'm using paypal-express for paypal reference transactions.
All works as aspected but I can't find a way to specify the paypal ipn notify url.
Is it possible?
Thanks
Teo
Hi, first of all thank you very much for creating and releasing this library.
I have been working to integrate the library into a project where we want to use PayPal. The project uses both PayPal instant payment and PayPal payment authorization and here comes the problem.
Currently, the paypal-express
library doesn't support PayPal authorization, nor it provides authorization
, void
and capture
methods. Moreover, integrating such feature at runtime or in a fork requires a lot of monkey patching because it's impossible to supply custom attributes on the fly to existing methods.
My proposal is to relax the method PayPal::Express::Request
definitions in order to allow arbitrary parameters to be supplied at runtime.
Let me show you an example.
https://github.com/nov/paypal-express/blob/master/lib/paypal/express/request.rb#L42-52
Here's the current checkout!
method.
def checkout!(token, payer_id, payment_requests)
params = {
:TOKEN => token,
:PAYERID => payer_id
}
Array(payment_requests).each_with_index do |payment_request, index|
params.merge! payment_request.to_params(index)
end
response = self.request :DoExpressCheckoutPayment, params
Response.new response
end
In order to introduce the Authorization, I should be able to pass the PAYMENTREQUEST_0_PAYMENTACTION
option and set it to Authorization
or Order
. But this is just an example, there is a number of additional fields I might want to supply to the :DoExpressCheckoutPayment
call such as GIFTMESSAGE
, BUTTONSOURCE
, ...
PS. I know that PAYMENTREQUEST_0_PAYMENTACTION
can be supplied using the Paypal::Payment::Request
, but this is just an example.
My proposal is to change the method definition to something like
def checkout!(token, payer_id, payment_requests, options = {})
params = {
:TOKEN => token,
:PAYERID => payer_id
}
merge_request_params(params, payment_requests)
merge_optional_params(params, options)
response = self.request :DoExpressCheckoutPayment, params
Response.new response
end
private
def merge_request_params(params, payment_requests)
Array(payment_requests).each_with_index do |payment_request, index|
params.merge! payment_request.to_params(index)
end
end
def merge_optional_params(params, options)
options.each do |key, value|
params.merge! key.upcase => value
end
end
@request.checkout!(..., ..., [payment_request], :GIFTMESSAGE => "My personal gift to you.")
You already provide the options
argument in some methods, however the options are filtered and custom values not mapped internally into the method are discarded. An other solution can be to pass an additional attribute so that options
(currently reserved for ruby-oriented options) are not mixed with custom options.
The options
value can be filtered or validated even further, but I believe that leaving the responsibility to the programmer can be a reasonable solution.
What do you think?
Hi there,
I've been struggling with the popup payment for a while now. I tried it like a month ago and got an error message so I thought let's try it later. I tried again now and still got the same error message :
We are unable to complete your request at this time. Please try again later. We apologize for the inconvenience.
The funny thing is the redirect method seems to be working fine.
Apparently someone else is having the same issue with the merchant-sdk-ruby gem, so I replied to his issue and I thought I might reference it here : https://github.com/paypal/merchant-sdk-ruby/issues/7
Any idea ?
Is there a way to checkout multiple items at once? I see that you can pass in a array of hashes into:
payment_request = Paypal::Payment::Request.new(
:currency_code => :JPY, # if nil, PayPal use USD as default
:amount => SET_YOUR_OWN,
:items => [{
:name => SET_YOUR_OWN,
:description => SET_YOUR_OWN,
:amount => SET_YOUR_OWN,
:category => :Digital
}]
)
but the items key only seems to accept one hash, and no more. Is this intended behavior? Because that :items key is really misleading because it's plural and it's an array, making it look like I can add multiple items.
This was working for me with Rails 3.0.3, but failing with 3.0.19. I updated my app to use Rails 3.2.11, but still no luck. It is giving me a security exception locally.
When dealing with multiple currencies, Paypal sends back an extra response field containing the exchange rate used in the transaction (which the gem is logging as ignored) called PAYMENTINFO_0_EXCHANGERATE
I was wondering how I'd go about retrieving that and including it in the payment_info object?
Many thanks
Getting this error:
Paypal::Exception::APIError in PaymentsController#create
PayPal API Error: 'Transaction refused because of an invalid argument. See additional error messages for details.', 'Transaction refused because of an invalid argument. See additional error messages for details.'
with the following code:
request = Paypal::Express::Request.new(
:username => Settings.paypal.username,
:password => Settings.paypal.password,
:signature => Settings.paypal.signature
)
payment_request = Paypal::Payment::Request.new(
:currency_code => :CAD,
:amount => 5.00,
:description => 'Fluffy bear'
)
response = request.setup(
payment_request,
'/success',
'/cancel'
)
redirect_to response.redirect_uri
paypal-express uses the same attribute for mapping amounts for the Payment::Request (SetExpressCheckout) and Payment::Recurring (CreateRecurringPaymentsProfile) but they are different:
I would recommend creating a new variable, Request#total_amount.
I just wanted to point out an unexpected result that I came across while upgrading:
In an upgrade from 0.2 to 0.4, one spec failure that occurred was that a Paypal::Payment::Request.new(amount: 12.34).amount.should == 12.34
. While this is not exactly the spec, it's actual spec failed with the following error:
Failure/Error: its(:amount) { should == 12.34 }
expected: 12.34
got: #<Paypal::Payment::Common::Amount:0x007fc5bc5a4a40 @total=12.34, @item=0, @fee=0, @handing=0, @insurance=0, @ship_disc=0, @shipping=0, @tax=0, @gross=0, @net=0> (using ==)
Anyway, it seems logical that an Amount
should equate to a Numeric, when it's generated in this manor. I believe that this is especially true since Amount does not carry a currency type, so it's fairly safe to assume that creating an Amount with a Numeric should equate successfully when given the same Numeric.
Although, I could certainly see an argument against this, since Amount has been overloaded to carry fees, handling charges, shipping charges, and more... It just feels counter-intuitive to create a Request with an amount set as a numeric and receive back an instance of an object that cannot be equated to the same numeric from which it was generated.
Feel free to disregard and close out this ticket if you disagree. :)
Merging this fork should be enough.
Needs to think about method name etc.
https://github.com/grooves/paypal-express
Related to issue #51.
I think current recurring payment won't charge immediately (for the first month) upon complete. And I found add a "activation" param to make it happen (am I wrong?). Since it's quite normal to charge immediately for recurring payments, maybe can add this option in the wiki docs?
Paypal::Payment::Recurring.new(
start_date: SET_YOUR_OWN,
description: SET_YOUR_OWN,
activation: {
initial_amount: SET_YOUR_OWN
},
billing: {
period: :SET_YOUR_OWN,
frequency: SET_YOUR_OWN,
amount: SET_YOUR_OWN
}
)
Hi, I'm trying to perform a recurring payment but it doesn't accept a customizable currency code.
I'm creating a Paypal::Payment::Request using currency code defined as BRL (Brazillian currency code). It works well and I'm able to redirect the user to the authorization flow within paypal. But, when trying to subscribe I cannot define the currency code for the Paypal::Payment::Recurring and it gets the default currency code defined by paypal (USD). It generates an inconsistency because the currency codes don't match and paypal API throws "Invalid currency code".
Error number 11548 from https://developer.paypal.com/docs/classic/api/errorcodes/
API documentation that shows the expectation for CURRENCYCODE for recurring: https://developer.paypal.com/docs/classic/api/merchant/CreateRecurringPaymentsProfile_API_Operation_NVP/
Best,
Pedro.
I'm writing a Rails(3.0.9) application that use paypal-express(0.3.1) and I want to use:
Paypal::IPN.verify!(request.raw_post)
from https://github.com/nov/paypal-express/wiki/Instant-Payment-Notification but I can't access to:
request.raw_post
I have completely implemented Instant Access but I never have access to this request.raw_post
method.
What am I missing?
Could you help me with this
PayPal API Error: 'Security error'
When calling
request.setup(
payment_request(
args[:amount],
args[:description],
args[:currency_code]
),
args[:success_url],
args[:cancel_url]
)
This is request
Paypal::Express::Request.new(
:username => USERNAME,
:password => PASSWORD,
:signature => SIGNATURE
)
I set these three constants with the strings I see in PayPal - API Explorer https://www.paypal-labs.com/apiexplorer/PayPalAPIs
This is args
{:amount=>#<BigDecimal:7fc128cd4bf0,'0.2E4',9(18)>, :description=>"my desc ", :currency_code=>:INR, :success_url=>"http://localhost:3333/payments/10/edit", :cancel_url=>"http://localhost:3333/services/1"}
Thanks in advance.
Get subscription details does not return list of transaction ids of each recurrent payment.
It is required for refund method.
Is it possible to refund recurring payment using this API?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.