opencart2.3.0.2 PayPal standard no shipping address to - paypal

I have searched using a lot of key words, but I have not found a solution.
OpenCart 2.3.0.2, using PayPal standard payment to order, but at the PayPal account,
The order shows "no shipping address"
How to make OpenCart submit the shipping address to PayPal when pay by PayPal?

On OpenCart 2.3.0.2,
go to catalog\view\theme\default\template\extension\payment\pp_standard.tpl
edit
name="no_shipping" value="1"
to
name="no_shipping" value="2"

Related

PayPal Website Payments Standard Integration

I am integrating a basic HTML form with the most basic level of PayPal - Website Payments Standard. It might be a silly question but how do you tell PayPal which account to pay? Is it through this line:-
<input type="hidden" name="business" value="youremailaddress#yourdomain.com" />
Yes it is. it would be better to use the unique account ID but the account email address will work. Email addresses must be confirmed.

Why is DoExpressCheckoutPayment required for Paypal?

I am trying to build a very simple paypal-backed shopping cart so users can purchase multiple items. I want paypal to handle all the payment details. I don't even want an order confirmation. I will manually check for order confirmation on paypal.
At first I wanted to use "Website Payments Standard" because it seemed easy to create a form that will post to paypal and let paypal handle it from there. But no, this did not work because the "Website Payments Standard" buttons/form do not support submitting multiple items. I tried all sorts of key/value in my form, and it never worked.
Then I tried Express Checkout using the instructions found here. It largely worked, but as I understand it, after sending a SetExpressCheckout, you have to listen for a request from paypal and do a DoExpressCheckoutPayment to complete the transaction. SO reference.
I find this a bit troublesome, because what if my server fails to receive the request from paypal and I never send a DoExpressCheckoutPayment? So a customer THINKS they have finished submitting an order, but the order was never received.
Does anyone know of a way to skip this "confirmation" step? I find it unnecessary, and not sure why paypal requires it.
That's because Express Checkout and Website Payments Standard are fundamentally different products.
To use Express Checkout, you would call the SetExpressCheckout API. In the API call, you specify the details of the products, amounts, and the RETURNURL.
Once you post this data to PayPal's API endpoint, you receive a token in return.
You would then redirect the buyer, and append the token to the following URL: https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-XXXXXXX
Once the buyer has agreed to your purchase, he is redirected back to the URL you specified in the RETURNURL.
You should now show the order confirmation, and call the GetExpressCheckoutDetails API**.
When calling GetExpressCheckoutDetails, supply the token. In the GetExpressCheckoutDetails API response you'll find a PayerID.
Now you're ready to call DoExpressCheckoutPayment, and charge the buyer. Remember to include both the token and the payerID when calling DoExpressCheckoutPayment.
Note: If you want to charge the buyer immediately by calling GetExpressCheckoutDetails and DoExpressCheckoutPayment immediately, redirect the buyer to https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-XXXXXXX&useraction=commit.
The useraction=commit will change the "Continue" button on the PayPal 'Review your payment' page to a "Pay now" button.
--
The reason there's such a significant difference between Express Checkout and Website Payments Standard, is that Website Payments Standard is intended to be a drop-in working solution where PayPal handles the whole transaction flow. Express Checkout is a more flexible solution which allows you to integrate it deeply with an existing checkout flow of a website / shopping cart.
For your use case; lookat using PayPal 'cart upload' buttons.
See for an example https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_cart_upload
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="seller#designerfotos.com">
<input type="hidden" name="item_name_1" value="Item Name 1">
<input type="hidden" name="amount_1" value="1.00">
<input type="hidden" name="item_name_2" value="Item Name 2">
<input type="hidden" name="amount_2" value="2.00">
<input type="submit" value="PayPal">
</form>
Note however, that this is insecure by default, as the amounts you're going to charge will be plainly visible in the HTML.
** The PayerID is appended in the GET of your RETURNURL as well. So you could skip calling GetExpressCheckoutDetails if you wanted to.
For the purposes of this site, the DoExpressCheckoutPayment operation simply is required by the PayPal Express Checkout API.
You're correct that it's not required for PayPal to process a payment, but there are scenarios that would require a second operation. An example of such a scenario would be one where the user (your site's customer) is choosing a shipping address during the PayPal payment confirmation. Depending on your shipping provider(s), you may need to calculate actual shipping amounts after the user has chosen a shipping address on the PayPal confirmation pages.

simple website interface with PayPal with _xclick

ok, it's working. However, I need one thing fixed:
how to remove the shipping to field for in our case it's not needed. thanks.
Pass in no_shipping=1 (if you're using Website Payments Standard).
E.g. <input type="hidden" name="no_shipping" value="1">
For Express Checkout, you'd add NOSHIPPING=1 in your SetExpressCheckout API call.

PayPal Subscription Button Error when selecting "Pay using your credit or debit card"

My client created a hosted Subscription button and gave me following code to apply in our website:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="X9Z9BHN867R2E">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_subscribeCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
On Paypal's Checkout screen there are 2 options:
1) Already have PayPal account (2) Create PayPal account.
If I choose first option and enter a wrong username/password. Then I see a link: "Pay using your credit or debit card". When user clicks on this link, it just throws an error: "The link you have used to enter the PayPal system is invalid. Please review the link and try again."
What is the possible cause of this issue? Am I doing something wrong or is it a bug at PayPal end.
this sounds like enhanced recurring payments. Your client must verify the Paypal account using email and this should solve your problem.
AR
This is clearly an error on PayPal's side. If you click on the hosted subscription button using a browser with no PayPal cookies, you will see a screen that says "You need a PayPal account for this purchase." and then two radio buttons:
I already have a PayPal account. (and then fields for entering your Email and Password)
I need to create a PayPal account (where available).
HOWEVER, if you click on a hosted subscription button using a browser with PayPal cookies (in other words, used by someone that has a PayPal account -- not necessarily your user, but anyone that has used that browser to logon to PayPal in the past), then the screen does NOT say you need a PayPal account for this purchase, instead it says:
Check out using PayPal (followed by fields for entering your Email and Password).
And below that (and it's a little hard to see at first), it says: "No PayPal account? Pay using your credit or debit card"
If you click on that, you will get the following error:
The link you have used to enter the PayPal system is invalid. Please review the link and try again.
PayPal requires a PayPal account for subscription payments, but for reasons only PayPal knows, they have chosen to have a link on the form that suggests otherwise and only confuses poor users when they click on it (who were trying to give you money, I might add) and then vaguely they are told there was an error.
Perhaps the only current work around -- until someone brings it to PayPal's attention -- would be to warn your users on your checkout page that a PayPal account is required for subscription payments.

Paypal sandbox to original Paypal

I used Paypal sandbox to test my code and my IPN is working.
Now, I need to go to my original Paypal account. My confusion is in sandbox, we make buyers' and sellers' accounts. And we get tit_789456613_biz#yahoo.com like seller account.
Is it needed in original account? If needed, how to make it?
If not needed, which email address should I use? Client's email or client's Paypal contact?
When you switch over from sandbox to real service you use your own real PayPal account as seller/business.
Example:
<input name="business" value="you#domain.com" type="hidden">
And you change the form action from https://www.sandbox.paypal.com/cgi-bin/webscr to https://www.paypal.com/cgi-bin/webscr
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">