Gravity Forms Payments with multiple conditions - php

I have a donation form with options to have a user pay with credit card (auth.net) or with PayPal. I also have an option to have the user set up recurring donations.
I need to condition checks to send the payment to Auth.net when the credit card option is selected as well as when the credit card and recurring donation is checked (same for paypal).
Unfortunately, payment processing conditionals only offer one option...so I'm a bit stuck at this point. Any extensions or suggestions to get this to work? Client has requested that they accept both Auth.net and Paypal (even though yes, paypal does accept credit cards...they still want this).

The key here is to have all of your conditions in one field (I normally use a radio button field) so that you can then use this field in your conditional logic for both your credit card field and your payment processing feeds.
Check out this example using PayPal and Stripe — it works the same for any payment processor (there's also an example form there that you can import into your site to see how it works directly in the form editor).

I ran into the same issue and thought it was a showstopper but this is what I did:
I needed 4 feeds:
Pay via CCPay via CC RecurringPay via PayPalPay via PayPal Recurring
BUT, I had a checkbox handling recurring (Yes), and radio buttons handling the payment type (CC/PayPal) and did NOT want to unify them.
So, I assigned my recurring a value of "1"I assigned my "Pay with CC" a value of "3" and PayPal at "0"
I created a new Number field and labeled it "PayPal Conditional Logic"I then enabled calculation to add "recurring+payment type".
So, now the feeds:
Send to PayPal if "PayPal Conditional Logic" is 0
Send to PayPal as Subscription if "PayPal Conditional Logic" is 1
Pay with CC if "PayPal Conditional Logic" is 3
Pay with CC as Subscription if "PayPal Conditional Logic" is 4
worked for me :)

Related

PayPal IPN - using different email for user registration to PayPal Account

I have setup a PayPal IPN for our website and is working correctly however if someone uses a different email address to their PayPal account email address I am unable to match them to the IPN message and mark them as paid.
How have other people got around this issue? I don't particularly want to use time just in case two people are registering at the same time.
--- Resolution: <input type="hidden" name="custom" value="<?php echo $rand ?>" /> inside the form with the custom button. The POST picked this up and sent through to the IPN message.
Your best bet would be to either (a) add an invoice ID to the transaction, or (b) add a custom value to the transaction. Almost all of the PayPal payments products allow for this. (For example, in PayPal Payments Standard, the parameter name is invnum for the invoice ID, or custom for the custom value. In Express Checkout, it's PAYMENTREQUEST_0_INVNUM and PAYMENTREQUEST_0_CUSTOM.) The data is included in the IPN postback, so you can use it to match up with the payment in your records. The difference between the two is that PayPal will block transactions that use the same invoice ID as a previous transaction (as long as the merchant hasn't turned the setting off for it), whereas the custom value just gets passed through without being checked.

Any way to change the "Cancel and return" label in PayPal payment page when using adaptive payments?

We're using PayPal adaptive payments API to create chained payments.
Basically the payment chain looks like this:
Buyer > Seller > Our account (We are the PayPal app owners)
We use the Pay and SetPaymentOptions operations to create the payment and set some data (like the name of the seller or a logo image).
However the PayPal payment page still says "Cancel payment and return to OUR BUSINESS NAME".
We want to change the OUR BUSINESS NAME part to something else. Basically so that the Buyer would not get confused.
Is there any way to customise the "Cancel payment" label (or at least the merchant name in it) using PayPal adaptive payments?
Thank you
No, this is the company name of your PayPal business account. There is no way to change it.
You can only specify the message on the page when the payment is confirmed, please see the cbt parameter.

Paypal options for "Pay now" button integration (PHP)

I have rolled out my own shopping cart website in PHP, and I want to add a "Pay Now" button which:
Sends the user to Paypal with a total amount payable
Allows the user to pay with or without a paypal account of their own
Prevent user from hacking around with the final amount (e.g. plain text attributes in HTML)
and I want a solution where I do not pay any monthly Paypal fees. But I'm finding the Paypal documentation seriously confusing, as well as other SO questions:
Paypal: Paypal Button Manager overview
SO: Paypal Pay Now Button
SO: php basic pay now button for paypal
SO: PayPal: express checkout pay without account
The Paypal documentation suggests that if I want a "Pay Now" button, the only option I have is to use "Hosted Sole Solution only". What exactly does this mean?
It also says "You cannot use hosted buttons with Hosted Sole Solution; you should use token buttons instead." Please forgive the stupid question, but this means if I want a Paypal "Pay Now" button, I have to use the "Hosted Sole Solution", which always uses "Tokens"? How exactly does the "Token" scheme work? Other questions suggest data is sent in plain text so can be hacked around with, yet the concept of tokens seems to suggest otherwise?
And last but not least, are there any examples of PHP code for the "Pay Now" button? I'm mystified why it all has to be so confusing!! (I'm comfortable with PHP, but to really understand how the Paypal "Pay Now" system works, examples would be ideal)
In case it matters, I will also want to use Paypal IPN, but I have done this before, so will regard it as a separate task, unless it has to be considered for the "Pay Now" button.
The big factor here is going to be the fact that you do not want to pay a monthly fee. This will limit you to using PayPal Payments Standard / Express Checkout, both of which have no monthly cost.
PayPal Standard are your "Pay now" buttons. They are nothing more than an HTML post form and can be created within your PayPal account's button factory, or you can create your own forms.
PayPal Express Checkout is an API based solution which in the absence of a shopping cart platform will perform nearly identically to PayPal Standard. Express Checkout does not allow the customer to checkout as a guest by default, additional variables (solutiontype=sole) need to be passed with the initial API call.
It sounds to me like PayPal Standard is going to be the product you are after. Here is a link to the base "developer" guide for PayPal Standard:
https://developer.paypal.com/webapps/developer/docs/integration/web/
If you prefer to create the buttons through the PayPal system, login to your PayPal account, click 'Profile' in the top right, then select "My Selling Tools". Select "Update" next to "PayPal Buttons" and then click on Create New Button on the right side. The button builder is really a simple tool and will provide you with a complete HTML form to paste into your site's source.
It turns out that what I wanted is the Express Checkout:
Getting Started with Express Checkout

Two different Payment Gateway for one payment

I'm building functionality in which product payment is divided into two parts -
1. service charge
2. actual payment
service charge payment will be done thr' stripe api (as client wants this gateway)
actual payment will be done thr' any type of gateway as per user selection.
But, crucial part is, both parts of payment should be done on one click.
On one click, it should go to stripe and other gateway that user has selected.
Can it be possible?
If yes, what will happen in the case where one of the two parts of payments is successful and other one failes.
Where can I redirect success url for both types of payments? on same page or another page?
As card details will be given only once by user in one form and submitted, can these details remain secure while processing of two transactions?
I have thoroughly searched for this, but can't find answer.
Thanks in advance.
Assuming this is a credit card payment only (and not a wallet such as PayPal or WebMoney, etc) all you need to do is store the credit-card details at your servers. Just make sure you are PCI compliant for that.
In this case, you will charge the service fee via stripe and the actual payment via the 2nd payment gateway. Just make sure you refund one if the other failed. Also ensure that the user is well aware that he will see TWO charges on his card. I would advise showing that nicely in the invoice page.
So it's not that complex of a flow for stored credit cards, but if you lack the credit card data and let the user pick an online payment option such as PayPal, then you'll need to ensure this online payment is successfully completed before charging the service fee via stripe.

Paypal Sandbox, how to verify sale with IPN for specific cart ID

I want to setup paypal sandbox to test sales. what i have done so far is setup seller and buyer account, created form for sanbox, enabled IPN.
What i dont understand is how i know which sale is being processed.
The IPN only send:
buyers desription
item purchased
paid amount.
I want to know, how can i send a cart id to sandbox, and receive it back with IPN, so i can process it.
i didn't found anyinformation about this on google and paypal documents.
Please help me on this, it took me many days and i haven't figured how to verify sales.
There's a variable you can pass in your HTML form called custom (variable reference). This field will be passed back to you in your IPN (IPN Reference). You can populate this with up to 255 characters and the customer won't see any of it.
Use invoice (which you should have to pass to paypal) or pass your own id through custom
edit: note that invoice must be unique, you cannot resuse an invoice to paypal otherwise you will get an error.

Categories