WooCommerce Paypal - Disallow Payment based on PayPal Billing Address (Country Restriction) - wordpress

A client of mine has some legal provisions that only allow him to offer PayPal as a payment method if the buyer's billing address is located in a specific country.
Naturally you can disable payment methods based on the billing address the buyer provides via WooCommerce. However, that is quite easy to manipulate.
PayPal asked them to implement a query, AFTER the buyer chose PayPal, signed into his account and accepted the payment method, to check if the billing address the buyer provided in his actual PayPal account is also located in that specific country. If so, the buyer proceeds to the 3rd checkout step and can finish his order. IF NOT, the buyer will be redirected to the 2nd checkout step, sees a note "This payment method is not available for your country" or whatever and can choose another payment method. So basically, the query has to check if the billing address is in a specific country and then decline the "payment execute" command.
I'm using the standard PayPal gateway that comes with WooCommerce. Does anyone have any idea how to make this work?
PS: Yes, retrieving the billing address from PayPal is usually not possible. However, my client got a special permit from PayPal to do so. So that's not an issue.

Using the PayPal Checkout plugin for WooCommerce, validate whether the response of the METHOD=GetExpressCheckoutDetails API call to PayPal contains the country you want, and use this to decide whether to let the customer proceed or not.

Related

WooCommerce Email on Payment Done but not received to Admin

I would like to know which WooCommerce email is sent to the admin when user has done the payment, money left from the user (bank) account, but admin haven't received the amount. Is there an email trigger for this situation by default ?
The new order email to the admin looks for the order status to switch to Processing (it also looks at other states, but Processing is the one relevant to your question). The payment gateway will decide what makes an order "paid" (and thus Processing in WooCommerce), so the answer to your question may vary with different providers.

WooCommerce order status not getting assigned properly for PayPal payment

Scenario
I'm using paypal sandbox account for payment right now and I've set it up correctly , the order is getting successfully placed if I use paypal payment while checkout. But the status should be completed but its not assigning that.(I'm trying this with virtual product only)
I've already read several articles related to same issue and I only found that if it is set properly then the status should be completed or either I've to set it manually by using code(but is this only way? and is it proper?).
Following are the observations from admin side:
On Order Notes -
Payment pending (unilateral). Order status changed from Pending payment to On Hold.
Paypal log(only last 3 lines as it was huge) -
2019-03-08T11:40:45+00:00 INFO Received valid response from PayPal
2019-03-08T11:40:45+00:00 INFO Found order #9985
2019-03-08T11:40:45+00:00 INFO Payment status: pending
The typical cause of this is a mismatch between your paypal details.
When you signed up for Sandbox Paypal you we're given a sandbox email address. You must make sure you're using your Sandbox email and not your standard Paypal email address.
You can also try looking in
Woocommerce > Settings > Products > Downloadable Products
And make sure you have the grant access after payment box ticked.
http://cld.wthms.co/ZExhMq
In my case, it was happening because I had created both facilitator and the buyers account separately via https://sandbox.paypal.com in contrast both of these accounts should be created in https://developer.paypal.com > sandbox > accounts.
When I had created the account separately the email address was not getting verified, I think that could be the reason for it not to work also when the user accounts are created from (https://developer.paypal.com > sandbox > accounts) you can see notifications for each account and perform an action accordingly.

PayPal Sandbox - Invalid Billing Address

I'm trying to test a purchase on a website I'm developing which uses WooCommerce. So, when I proceed to checkout and chose to pay without a PayPal account (this payment method still runs through PayPal's system) and use a credit card. I'm using a fake credit card that I generated in PayPal sandbox. When I type in all the correct details and attempt to continue with the payment, it returns an error that the billing address I used is invalid (the billing address I'm using is the address that PayPal Sandbox generated for me. I'm not sure how to fix this.
Kindly contact PayPal Merchant Technical Services for further assistance on this issue.
https://www.paypal-techsupport.com/app/ask

PayPal IPN in WooCommerce

I am just wondering which table stored the PayPal IPN in WooCommerce. The dashboard in wordpress(woocommerce) can not see so much information in the PayPal IPN, only few of them like Payer first name,Payer last name,Payer PayPal address,Payment type,PayPal Transaction Fee. I want to see more about the IPN data such as if the paypal is verified, phone number, registered country, etc.
In your dashboard You will see:
Order #ORDER_NUMBER details
Payment via PayPal (`PayPal Transaction ID`).
In your PayPal account access Instant Payment Notification (IPN) details page. profile -> selling preferences -> Instant Payment Notification Preferences. Click IPN History page and search the transaction id that you see in WooCommerce. You will see all the information about this IPN. HTTP response code, Delivery status, the actual message sent by PayPal.
You can also access the transaction id from WooCommerce table.
select meta_value
from wp_postmeta
where post_id=ORDER_NUMBER and meta_key='_transaction_id'
replace ORDER_NUMBER with your WooCommerce order number.
Some might need the IPN data from PayPal to feed into other in-house operational processes, like shop floor order processing, etc., rather than having woocommerce consume all the IPN data and only 'keep' part of it for display. Better to either save it all, or offer a configuration option to specify a 2nd IPN listener the data could be piped to, in order to facilitate automation of other order processing systems.

How do I link PayPay Standard on Website to PayPal Account?

I have Cube Cart V5 installed and have activated PayPal Standard as payment method. On a test sale, the PayPal screen comes up and asks 1) Login to your PayPal Account, 2) Use your credit card. How do I link this to my PayPal account so that purchases are registered to my PayPal account?
I am not familiar with Cube Cart but in the most basic way as a paypal merchant you are issued a merchant username and password that represents you and in your management tools for your cart you can cut and paste those values in there that will take care of transactions.
When a payment is initialized it is normally passes values through a URL string. Your merchant information will be in that string so it can match up to an account to receive money.
Paypal has integration documentation, but the people that support the Cart should be able to help you more efficiently. See if they have a forum if you don't get direct support.
I'm not sure what you're asking. Paypal works this way, by connecting you directly to paypal and allowing you to sign in and make your payment on their website. When your customer makes a payment, the money goes into your paypal account which you entered into cube during the setup process.
If you prefer to use paypal's api key, you can learn more about it at this link: https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECAPICredentials/

Resources