Assoiciate paypal payments with the payer - php

So in my website I have in-game features which you can buy
I have a miniature store made and paypal buy now buttons included
What is the best and most secure way of automatically giving users there in-game bonus. When they have paid through paypal you have an option to put in a link when the payment is successful and i could have a form so when they are on that link it adds there bonuses but it also means anyone could just go to that link and get the bonuses for free.

A couple of options (this sounds like Payments Basic)
Have them enter their PayPal account email address into their game account profile. When you get your IPN you match those up and issue the bonus
Add the custom field to your HTML buttons. Associate that value to their user profile in your database. When you get your IPN, match the custom field up and issue the bonus

Related

Can I sell subscriptions without subscription button using Pay Pal

I have website on which I want to sell subscriptions. Here is the scenario:
In the pricing tables there is button purchase. When user click on the button I am sending him to the form where he can enter his details (name, email, password) . When visitor click on the submit button his account is created and I want to redirect him to the pay-pal page, where the user can make the payment.
Can anyone point me to some article on pay-pal page where I can read instructions how can I do that, and which model/api/gateway/whatever I should use for that? I know how to create subscription buttons, but using them doesn't seem to fit in my scenario-flow. Please note that I need help to FIND information how this can be done, I will find my way with the coding.
PayPal supports multiple ways to sell subscriptions.
You can use one of these depending on type of complexity you can handle and features you want:
PayPal WPS Subscription Buttons
https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/#recurring-payment-variables
This is a button integration, you can specify your subscription terms and PayPal will take care of making recurring payments. You can also maintain inventory, profile & loss tracking. This will require very less coding effort from your end.
API Integration: https://developer.paypal.com/docs/integration/direct/billing-plans-and-agreements/
This is an API integration: Here you need to create a Plan and redirect the buyer to paypal to get buyer's approval. Then you can do recurring payments via API calls. You will need to maintain a secure database of approval ids, buyer details and the agreement details. Also you will need a daemon which should call PayPal apis on subscription dates.
You can also refer to this guide to get more info on different flows supported by paypal: https://developer.paypal.com/docs/directory/

PayPal tracking not showing the Receipt ID for certain transactions

I'm using Website Payments Standard account and I have integrated Add to Cart button and Subscription button in my website. Few payments were made by my clients. But upon downloading my transaction history, I cannot view/retrieve the Receipt ID for certain payments, no matter if it is through Add to Cart or Subscription. Few transactions shows blank field for receipt ID. Can anyone guide me in finding out the problem? Is it anything related to my Website Payments Standard account? Or anything related to my client's account?
The PayPal IPN variable reference states the following for the receipt_id parameter.
Unique ID generated during guest checkout (payment by credit card
without logging in).
Sounds to me like you must have some payments coming through via guest checkout and others coming through as actual PayPal payments, so those wouldn't have a receipt_id.

Catching duplicate PayPal IPN payments

I have a recurring payment solution set up via PayPal's IPN service, basically the user fills in a form, pays the money and via IPN my system gets a ping to grand the user access to the system.
Everything technically works fine, but occasionally on the last day of a user's cycle they forget that it is a recurring payment and complete the form again. PayPal doesn't seem to mind this and creates a second recurring payment profile.
Currently I go in, refund the money and cancel this new payment profile, but obviously this isn't ideal - is there any way I can configure PayPal to not accept new profiles from people with currently active profiles? Or will I need to catch this at my website's end and do some form of lookup before allowing the payment?
Paypal did not recognize the a transaction is a duplicate one, It tackles the transaction as a new transaction. You will have to tackle it from your system.
When implementing payment gateways, It is good approach to save the billing with a status pending or something in your system before sending to payment gateway.
Also in the form user is filling you can implement a field to uniquely identify the user like his email address and you can also save the expiry or second recurring date against the user unique field in your system. Now when the user enter the same unique field and want to submit a form again you can validate that the same user is paying again but its expiry of second billing date is not yet reached, so prompt and restrict him for paying again.
Hope it will help you.

Put my logo on Paypal page when my sellers sells some product from my website

I am doing paypal integration in my website in a section called stores where an user can sell his products from my store. And i am storing the paypal accounts of my sellers to pay him directly when customer purchase something from his store in my website. Is it possible to put my logo on the paypal checkout page where the seller email id i'm passing will not be mine(Since each sellers will have their own Paypal Business email id)?
Yes, you can make it using PayPal Express Checkout. No need for upgrading to Pro, and paying a fixed monthly fee.
When setting up the express checkout transaction, you have a parameter that tells PayPal which images to show for branding.
https://www.paypalobjects.com/en_US/ebook/PP_APIReference/expresscheckout.html#1144280
The parameter name is called cpp-header-image which make sure it's delivered through HTTPS otherwise the browser may ask the user is he/she want to see only the securely delivered content.
There is something called "PayPal Payments Pro", which allows you to have many options over a typical PayPal account. From X.com (a great resource for learning about the Paypal API Stack), I was able to pull the following link for you (which explains what you are wanting to do)
https://www.x.com/developers/paypal/products/paypal-payments-pro

PayPal subscriptions PDT / IPN - PLEASE

Am having a lot of trouble getting my head around this paypal payment stuff...
How can i confirm that the user has successfully signed up for my subscription?
I know 0 about IPN but for example : If a user signs up to my website with example#e.com but uses the paypal account sample#s.com to pay then how to i match up the user.
I read that PDT do not send out a transaction ID (tx) for recurring (subscription) payments is that true ?
Just need help with it all... honest and easy :)
Thanks.
Yeah sometimes is hard to understand Paypal and all their documentation but for any kind of subscription i would recommend Paypal IPN. You set IPN URL in your paypal account for example: http://www.domain.com/ipn.php. Then you create a subscription button in paypal account where you can set the price, recurring price etc.
More about Paypal IPN you can read here:
https://www.paypal.com/ipn
When creating Paypal button you can also add some custom fields which can help you determine which customer really pays. So for example you have a database of users and there is user with userid=100, username=Nickname and registered_email=xxx#gmail.com. Now you can decide to add userid=100 as a custom field and add this to paypal button. For example CUSTOM=100.
ipn.php in this case is a script which handles all the logic. When user pay, Paypal send any status to http://www.domain.com/ipn.php (you set this in your paypal account as IPN URL). So ipn.php in this case needs to check if payment is complete and status is ok. Then retrieve a CUSTOM field ($_POST['custom']) which is in this case 100 (userid). And then update your database with users and somehow mark that this user payed of course if status is Completed.
Hope this helps a little. But in this case it's not really important from which paypal account user pays and which is registered in your database. All you need is that you somehow link it together. In this case with userid or something like that.
If you want to implement Paypal IPN and your customers don't use same email from my experience you can use a form to authenticate the user
user login on your website with xxx#example.org
user clicks on your item and pays with yyy#example.org
after he pays you can redirect him to a form where they can merge Paypal account with website account
every time that user pays then your IPN will be covered by the information he provided
you should save his payment information for later use.

Categories