2

My calls flow is as follows:

  • SetExpressCheckout
  • GetExpressCheckout
  • DoExpressCheckout

Note: paymentAction is Sale for single payment and Authorization for recurring payments

CreateRecurringProfile with initial amount (only for recurring payment)

I found out that:

Money was pending to be captured.

The profile also deducted money for the initial payment.

When i tried to capture the money, then client was debited twice.

Questions:

  1. Please can you advise what is missing from my API calls?
  2. For recurring payments, o you think i don't need to call DoExpressCheckout API before calling CreateRecurringPaymentsProfile API?
  3. If question 2 is true, if CreateRecurringPaymentsProfile API call was successful that is $createRPProfileResponse->Ack == "SUCCESS", then does that mean the initial amount is guaranteed for me and i can allows access to my services?
Dhairya Vora
  • 1,281
  • 12
  • 35

1 Answers1

1

It sounds like you're a little bit out of whack with what you're doing. You wouldn't setup a recurring payments profile as an "authorization".

If the checkout is for nothing but a recurring payment, you would not need to call DoExpressCheckoutPayment. You would only make both calls (DECP and CRPP) in a situation where you needed to take a one-time payment for product you were shipping, for example, and then also create a subscription on top of that. In your case it sounds like you will only need CRPP.

You still need to call SEC and, optionally, GECD, but you'll simply finish it off with CRPP. (Side note: Make sure you've included the billing agreement details in your SEC request. That's a common mistake a lot of people make and they end up with an invalid token error when calling CRPP.)

An Ack of SUCCESS does NOT mean the initial amount was approved. It simply means the profile was created successfully. There is a parameter available in the request, though, FAILEDINITAMTACTION, that you can use to specify whether or not you want to leave the profile as active or immediately suspend it if the initial payment fails. It accepts the following values: ContinueOnFailure / CancelOnFailure

Don't let that confuse you, though. It would actually set the profile status to suspended, not canceled, so you can simply re-activate it once they've paid.

When you build your login system for access to your paid areas of your site you can use the GetRecurringPaymentsProfileDetails API to check the current status of the profile and only allow access if it's Active.

Hope that helps!

Drew Angell
  • 25,968
  • 5
  • 32
  • 51
  • Thanks Andrew, that is correct. I found out that calling DoExpressCheckout API is not necessary for recurring payment even when there is an initial payment. – Folarin Musiludeen Dec 28 '12 at 19:59
  • For instance, if your normal charge for your services is £10 monthly, and you want your client to have access to your services for ten days with initial amount of £5. And after the ten days you want the normal charges to continue. You do not need to call DoExpressCheckout API, you can just call SetExpressCheckout and during CreateRecurringPaymentsProfile API call, set initial amount to £5 and profile start date to current date plus ten days. The initial amount will be deducted upon creation of recurring profile and subsequent recurring payment will start after ten days. – Folarin Musiludeen Dec 28 '12 at 20:01
  • Right...that's pretty much what I explained in my answer. ;) – Drew Angell Dec 28 '12 at 23:45