We have implemented django oscar to include paypal recurring payment. (THIS IS GENERALLY A PAYPAL QUESTION). On sandbox, everything works on well.

Here is the flow we have implemented but can never get to step 3 and stuck in step 2 after "Agree & Continue" (which basically authorize the card).

  1. Call SetExpressCheckout, setting up the billing agreement in the request [L_BILLINGTYPE0=RecurringPayments]. Returns a token, which identifies the transaction, to the merchant.
  2. Redirect buyer's browser to: https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout appended with the token returned by SetExpressCheckout. Displays login page and allows buyer to select payment options and shipping address.

<--- stuck here

  1. Redirect buyer's browser to returnURL passed to SetExpressCheckout if buyer agrees to payment description.
  2. Call CreateRecurringPaymentsProfile in the background (without further actions from the user). Returns ProfileID in CreateRecurringPaymentsProfile response for the successfully created profile (PROFILEID=I-1NNDL8LGNX35).
  3. Display successful transaction page (Thank you page).
  4. Listen to PayPal IPN notifications to trigger merchant's server logic for future successful/failed/canceled/suspended payments.

So in step 2, when I click "Agree & Continue", it has a spinner processing, I can see then on my phone my credit card was charged. But then, nothing happens, it doesnt redirect, so it stays the same. When I click again "Agree & Continue", it then has "Sorry, we weren't able to authorize your card. Please choose another way to pay.".

My guess is maybe something to do with merchant settings ?

I am a business in Malaysia, but my SaaS service is charged in USD. FYI, I'ved set the primary currency to USD. Please see screenshot.

  1. This is what happens after clicking "Agree & Continue". It is still the same page, nothing change, just it had a spinner for a while, and on the phone I saw it charged, see picture no.3. (I called bank it was charged, but paypal I called it was authorized but not captured, so it will be refunded)
  1. I clicked 2nd time, then "Sorry, we weren't able to authorize your card. Please choose another way to pay." appear.
  1. This is the charge from the card based on picture no.1
  1. I set USD as default. My business in Malaysia, not sure if its to do with settings.

Note: In merchant Paypal->top right gear->account settings->website payments->website preferences, I have turned ON (not sure if this is needed)

  • Auto return
  • Payment data transfer

UPDATE: It worked after using different credit card for the buyer and merchant account. Initial test was using the same card registered to both buyer and merchant account. However, it only worked with monthly but not daily. I need to know why daily then does not work.

0

There are 0 best solutions below