1
votes

My dear fellow IT developers...

I am currently working for a client of mine on Laravel 5.5 and we are using omnipay library for PHP and it's PayPal part omnipay-paypal. Now since this a specific request from client I am using PayPal-Express method to redirect the users to PayPal then there they login and pay with their account PayPal or CreditCard and come back to my clients page on Thank you page.

Now since the client wants to create an upSell page which stands between checkout page and Thank you page, and it offers 1 additional unit of the product on 50% discount.

The story is that after the first charge I would need to recharge them again somehow, ideally with what I already have and that is PayPal Express.

On our checkout page we have two options PayPal or Checkout.com, the latter one offers storing of card_id property and after that you can do the recharging, this is already implemented and working like charm with Checkout.com. Now back to PayPal.

I've spent fair amount of time trying to find the same solution for PayPal but with no luck. If there is some good soul out there to help me out with this I would appreciate it very much, so Omnipay PayPal library + recharge the customer if they click Yes on upSell page after initial successful charge/payment via PayPal Express.

Thank you in advance.

1

1 Answers

0
votes

There isn't an easy solution to this problem, however I can point you in the direction of a couple of things you need to do:

  • What you need is a card token. That's where (in Omnipay) you call a method like createCard() with the customer's credit card details and you get back a token. You can't do that with a PayPal account, you have to capture the customer's credit card details and then charge the card.
  • Creation of card tokens can't be done by the PayPal Express gateway. It can be done using the PayPal REST gateway (an alternative and newer gateway in the same Omnipay package as PayPal express) which means you need to switch from PayPal Express to REST. That's as simple as generating a new set of API keys. That will allow you to call createCard() with the card data and get back a card token (called a cardReference in Omnipay) just like you do with checkout.com

Just to reiterate, what you're trying to do can't be done with a PayPal account. You need to have the customer's credit card details.