I'm using a different module for PayPal for ReactJS on the web, and it works fundamentally different from this and any other PayPal React Native library that I've tried.
On the web, when the client goes through the PayPal Express Checkout process, a payment is created in PayPal, but not executed. The client then posts to my server code, which runs some business logic and then makes a REST API call to PayPal to execute the payment. This works very well, because if there's any kind of business-rules error (e.g. they didn't select a shirt size), I do not run execute and the user isn't charged. In fact, the payment never even hits their PayPal dashboard.
In the React Native scenario, because the payment is automatically executed by this library, the funds are immediately taken from the user's PayPal account before my server code even gets a chance to run.
Can you shed some light on this, and what I might do to overcome this issue? Is "execute" an option on the underlying Android and iOS libraries? If yes, could you expose it as a parameter to the React Native component?
Versions
Issue
I'm running tests in my Android environment.
I'm using a different module for PayPal for ReactJS on the web, and it works fundamentally different from this and any other PayPal React Native library that I've tried.
On the web, when the client goes through the PayPal Express Checkout process, a payment is created in PayPal, but not executed. The client then posts to my server code, which runs some business logic and then makes a REST API call to PayPal to execute the payment. This works very well, because if there's any kind of business-rules error (e.g. they didn't select a shirt size), I do not run execute and the user isn't charged. In fact, the payment never even hits their PayPal dashboard.
In the React Native scenario, because the payment is automatically executed by this library, the funds are immediately taken from the user's PayPal account before my server code even gets a chance to run.
Can you shed some light on this, and what I might do to overcome this issue? Is "execute" an option on the underlying Android and iOS libraries? If yes, could you expose it as a parameter to the React Native component?