I've stuck with PayPal Standard payment for OpenCart and found no solution yet.
What I've done:
Created a business account on sandbox.paypal.com
Set up following web preferences:
Auto return (URL specified)
PDT enabled
Enabled IPN (URL specified: http://my.domain.com/index.php?route=payment/pp_standard/callback
Created personal account on sandbox.paypal.com
Set up PayPal Standard extension in OpenCart:
Specified e-mail of the business account created above
Specified PDT token
Specified Sandbox mode
Transaction method - Sale
When I try to pay with PayPal I'm redirected to PayPal and pay proper amount. Then I'm automatically redirected back to my site by URL specified in PayPal business account's settings. So this tells me the payment recipient is recognized by PayPal.
At this point joy ends. In the sending account's activity log I see sending transactions. All of them have status Unclaimed. In the business account's log I see no transactions. In the IPN history I see no IPNs and in the web server's log I see no requests to /index.php?route=payment/pp_standard/callback.
I'm certainly missing something. But I can't figure - what.
In Paypal checkout section in open cart admin panel, go to the general tab of that, you will find test mode option, set it yes. and for debugging mode set it yes. Check your checkout process now. i think it will solve your problem.
I was having a similar issue a while back. For me, it was because the payments being sent to OpenCart were in a different currency to what was held in the Sandbox balance. E.g. OpenCart was sending orders in GBP but the Sandbox holds currency in USD.
I fixed by changing a setting in the Sandbox account.
Profile > My Settings > Block Payments > Click Update
On the page which appears, there is an option "Allow payments sent to me in a currency I do not hold:". I just set that to Yes.
Related
I integrate PayPal in my Symfony 4 App, but in sandbox payments still need to validated as we see in the picture behind.
How can I get payments accepted automatically ?
and I'm asking also if in Live mode, I'm going to have the same problem because I didn't have a business account to test it.
Is the issue that the payments are "PENDING"? Is the PayPal sandbox email not confirmed?
Log in with Sandbox account at https://www.sandbox.paypal.com/businessprofile/settings/email to check and resend any confirmation email
Then log in with Live developer account at https://www.paypal.com/signin?intent=developer&returnUri=https%3A%2F%2Fdeveloper.paypal.com%2Fdeveloper%2Fnotifications%2F to read the message notifications and confirm the email
One of the reason of that happens when the currency of the payment is not the same with the Paypal JS loaded script in client size.
So What you don't know that in the script loaded, the default Currency is USD, So you have to specify the currency in this script :
<script src="https://www.paypal.com/sdk/js?currency=EUR&client-id={{ data['clientId'] }}">
So in this case if the client pays with EUR, the payment is auto-accepted, else, you have to configure the strategy in Settings when you have two different currencies, So you have to login with your Business Account, then go to the Account Settings > Payment preferences > Block Payments.
I am testing paypal sandbox on nopcommerce. I have created buyer(personal) and seller(business) accounts in paypal sandbox accounts. below is the business profile api credentials tab
Classic TEST API credentials
Username:
kokxxx-facilitator_api1.gmail.com
Password:1392740961
Signature:
AeM4pXm0nQ-QLw4cuGtd3QQ4pDODA4SRJcPPOAjzkizlkWnhbaXdAgen
I have configured paypal payment method I used business email kokoxxx-facilitator#gmail.com Notice it is different from username shown above
for pdt I copied and pasted the signature show above
I left ipn handler blank. Then I tested a transaction as guest and entered shipping and billing address ( my actual texas address!) here i don't know if this matters. in payment method I see two options credit card and yes credit card!! I proceed to enter the buyertest email as in sandbox account and entered my real credit card information.. and confrim.. it says success. but when I check sandbox account there is no mention of this transaction..also no notifications....can some one please guide me step by step how to make this work. I have paypal account and sandbox account had worked for me on sharepoint public website before.
CONFIGURATION FOR PAYPAL STANDARD IN NOPCOMMERCE
If you're using this gateway ensure that your primary store currency is supported by Paypal.
To use PDT, you must activate PDT and Auto Return in your PayPal account profile. You must also acquire a PDT identity token, which is used in all PDT communication you send to PayPal. Follow these steps to configure your account for PDT:
Log in to your PayPal account.
Click the Profile subtab.
Click Website Payment Preferences in the Seller Preferences column.
Under Auto Return for Website Payments, click the On radio button.
For the Return URL, enter the URL on your site that will receive the transaction ID posted by PayPal after a customer payment (http://www.yourStore.com/Plugins/PaymentPayPalStandard/PDTHandler).
Under Payment Data Transfer, click the On radio button.
Click Save.
Click Website Payment Preferences in the Seller Preferences column.
Scroll down to the Payment Data Transfer section of the page to view your PDT identity token.
Two ways to be able to receive IPN messages (optional):
The first way is to check 'Enable IPN' below. It will include in the request the url of you IPN handler
The second way is to confugure your paypal account to activate this service; follow these steps:
1. Log in to your Premier or Business account.
2. Click the Profile subtab.
3. Click Instant Payment Notification in the Selling Preferences column.
4. Click the 'Edit IPN Settings' button to update your settings.
5. Select 'Receive IPN messages' (Enabled) and enter the URL of your IPN handler (http://www.yourStore.com/Plugins/PaymentPayPalStandard/IPNHandler).
6. Click Save, and you should get a message that you have successfully activated IPN.
NOTES
Your PDT Token is not the same as your paypal signature.
To use paypal standard you need to use your PDT Identity Token.
The PDT Token is 59 characters long.
The PDT page can be found under profile/my account settings/Website Payment Preferences:
https://www.sandbox.paypal.com/uk/cgi-bin/webscr?cmd=_profile-website-payments
When doing a test transaction. Log into paypal with your buyers sandbox account.
Paypal e-mail notification can be found under profile/my account settings/Instant Payment Notification (IPN):
https://www.sandbox.paypal.com/uk/cgi-bin/webscr?cmd=_profile-ipn-notify
Nopcommerce email account must first be setup from configuration/email accounts and ensure a test email send successfully.
Nopcommerce e-mail notification can be setup from content management/message templates.
I am using the standard paypal payment method with my opencart website. When I go through the checkout process and get redirected to the PayPal website, I get to login and choose my payment source on the paypal site. However, when it starts processing, it just returns "Your session has timed out, please log in again." and logs me out of Paypal.
Any help would be appreciated.
I had facing this problem also. If you are using sandbox mode, You should be gave test account for buyer(buyer account must be business account) and also seller account must be individual account(personal). for example xxx#gmail.com is buyer account you should put it in admin panel paypal extension,then you should login in E-store website with seller account(yyy#gmail.com) and proceed to paypal it will works well.
Some times the cookies that Paypal sets are really annoying, try cleaning all of them, it helped me with other Paypal related errors.
I've been trying this for few days. I've created some seller accounts, one of them I created early this year and it was working fine. Then when I return for this project this March, Paypal changed the API from x.com to developer.paypal.com. The old seller accounts were still working fine and can still accept the digital goods payments from the payer accounts that I created recently, however the new seller accounts, with BUSINESS type, suppose to be able to pay and accept payments got some issues. These newly created seller accounts receive the following warning:
You are not signed up to accept payment for digitally delivered goods.
Doing some research with google, I released I have to set the paypal business account for digital goods. But I can't find where to set it from the new paypal developer control panel. Even when I tried to log in to the sandbox version of paypal.com, using the seller accounts I created in the sandbox, I still can't find where I can set it. In my business setup, there are only two options for me, one is Paypal payments pro and other other is "Virtual Terminal". Any idea? Please help....
I've found the way to add express checkout for digital goods in sandbox, but I think Paypal should pay attention to this because the way I used was very clumsy.
First sign in to sandbox and choose a business account to log in to the sandbox by using the url provided in the Application/Sanbox Accounts. Then use the account that you want to set to accept digital goods checkout to log into the sandbox url, it should be www.sandbox.paypal.com/us/home
After logged in, go to my business setup and pay attention to the setup my payment solution. Click the view all products and you will be redirected to a new page. Please note the url now, the "sandbox" is missing. Now click on the express checkout button, or whatever you want to add to the payment solution, you will be redirected again. Now pay attention to the url, insert "sandbox" to the url, e.g www.paypal.com you have to replace it with www.sandbox.paypal.com, the rest of the url remain the same. Then press enter you will be redirected back to the business setup page. Now you can see your payment solution has become express checkout. It is stupid and I hope paypal can let us choose this directly from the control panel in the near future.
An alternative hides in Profile > My selling tools > API access > Update > At the bottom - Enable Express Checkout.
When I later go to My Account > My Business Setup I see: "Your payment solution: PayPal Digital Goods (Express Checkout)"
When the PayPal transaction is complete, PayPal shows this:
Thanks for your order
Your payment of $XXXX.XX USD is complete.
You're now going back to MYSITE.
If you are not redirected within 10 seconds, click here.
I don't want the client to even see this page. Is there any way to either avoid it completely, or set the redirect time to 0?
You will also need a Website Payments Pro subscription for that.
https://www.paypal.com/webapps/mpp/website-payments-pro
Once you have it, get the API signature, API username & API password from the My Profile area of your paypal account.
Then, use the Direct Payment method as described in the following manual
https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_WPP_IntegrationGuide.pdf
As mentioned by Watermark, you might need to review PCI requirements and at least have SSL on your site before you can do this.
Check out https://developer.paypal.com/. You can build your own interface using PayPal's API. The user will never know that PayPal handled the transaction.
Be sure to review PCI-DSS requirements when using this approach.
What you ask is achievable with PayPal Payments Standard, but the seller account receiving the payment needs to be a PayPal Business/Premier account (a free upgrade), and they need to enable Auto Return and provide a Return URL in their PayPal account > Profile > Profile & Settings > My Selling Tools > Website Preferences.
You can also pass a return URL variable to checkout for each order, which would override any Return URL (or lack thereof) in the seller's PayPal account profile; however, if Auto Return is not also enabled in the seller's account, the buyer would need to click past the end of checkout manually in order to be redirected to that URL.