Implenting Credit card processing within PHP MySql Site - php

I am developing an Ecommerce website and I would like to implement Credit/Debit card processing within the site.
I would like to know if there are any good PHP scripts which fully implement this and the payment gateways that provide this service.
Also the website will have a Money Back guarantee feature in the event of cancelling of orders and so on. So how can this also be implemented using Credit/Debit cards i.e. I want to be able to refund the customers in the event of a cancelled order.
The site/service will be offered in Africa and Paypal isnt present.
Thanks

You need to find someone to process your credit card payments first. eg Paypal or SagePay.
They will provide you with all the documentation on integrating with the payment gateway, and all the ones I have used in the past have included PHP sample code.
Here are some handy links for you...
Paypal Developer Docs
Google Checkout
SagePay (UK credit card
processing)
Update: Since you are trying to offer this service in Africa, I would recommend contacting your local big bank to see what services they offer. All the major banks in the UK and the US offer their own gateways (or point you in the direction of their preferred partner), and I would imagine that would be true everywhere.

http://pear.php.net/package/Validate_Finance_CreditCard

Related

Adding Credit Card Payment Support to my website

I've puzzled by this question for quite a while, but never had the need for it. Now I do.
What I currently need is a Credit Card payment option for my website that does not rely on services such as Paypal. I want something like Name.com or Hostmonster.com have. You simply enter you credit card number, expiration date and the three little numbers at the back of the card. How can I achieve the same effect on my website?
I'll be programming the website in PHP.
Answers would be appreciated.
You need to signup to a payment gateway. It's a service that allows you to process credit card payments. I know you don't want to use PayPAL to accept payments, but PayPAL offer two solutions:
PayPAL Payments - That is the button and people pay through PayPAL
PayPAL Payments Pro (Payment Gateway). That is when you use PHP or anything else to connect to PayPAL with the credit card information. The customer never knows you used PayPAL, and they never leave your site.
When choosing a payment gateway these are the four most important things you should consider:
How easy is it to implement (PayPAL has a lot of documentation)
How much is the monthly fee.
How much do they charge per transaction.
How much do they charge to setup an account.
There are other options, and one of the most common is Authorize.net, but the is more setting up and a larger deposit to open an account.
Most accounts will require a background and credit check.
Well, you'll still need to rely on a Merchant Services company for card processing. There are many companies that boast an API that can then be accessed with PHP. One that I have recently learned of is Stripe. However, there are many competitors and you can research other companies further, but companies like Stripe will allow you to generate payments programmatically without having to leave your site to visit the black-box that is PayPal.

PayPal checkout solution confusion

I am trying to figure out exactly what payment solution to use for my site.
I would like to do the same thing as Spotify (https://www.spotify.com/us/freetrial/ - You'll need to login to see it), allowing users to choose whether they want to pay with PayPal or use a credit card and then taking them to a payment selection screen (on PayPal), then returning them to my site to click confirm and buy.
I am already paying for recurring payments (even though I've yet to use it) and am unsure if that is applicable here. I have also integrated express checkout but I don't know if it will allow recurring payments.
EDIT: Do I need a separate token for recurring payments? Do I have to use the old recurring payments checkout screen? How can this be done as efficiently as possible, like Spotify? Here are my efforts to create a recurring payments profile after express checkout: http://pastie.org/private/sakzopltnwfv93wwmduqq
Diagram:
Select Buy & PayPal (subscription) --> Choose Payment (on PayPal) --> confirm & pay (my site)
This is what spotify's checkout looks like (It wouldn't say update for first time users):
Are they using recurring payments + express checkout? I would really appreciate some help with this.
Yes, you can get this done with Express Checkout + Recurring Payments. That said, if the person chooses credit card when setting up a recurring payment they will have to create a PayPal account. If they're paying a non-recurring checkout then they could use the credit card option without creating a PayPal account.
You mentioned that you're already paying for recurring payments..?? Are you referring to Payments Pro? If so, you don't need to pay for that to use EC + RP. Pro is only necessary if you want to process credit cards directly on your site without ever redirecting to PayPal. This can sometimes make things seem a little more professional and would also give you the ability to let people setup recurring payments without creating a PayPal account when using a credit card.
When using EC you just need to make sure to include the billing agreement parameters in order to get a token back that will work within CreateRecurringPaymentsProfile. Refer to the SetExpressCheckout API reference for more details on that.
This is kind of old now, but is still useful. Take a look at this sample express checkout set of api calls. You'll notice it uses the same token throughout all of the calls.
Just like Spotify -you would need to build that option on your site. If the user chooses to subscribe with a credit card - use the recurring payments w/ direct credit card (see below). If the user chooses to subscribe with a PayPal account - use the recurring payments w/ PayPal Account (this is what Andrew is suggesting above in his response).
Here are the how-to guides:
For direct credit card subscriptions: https://www.x.com/developers/paypal/documentation-tools/paypal-payments-pro/how-set-recurring-payments-profile-using-direct-payment
For PayPal Account subscriptions: https://www.x.com/developers/paypal/documentation-tools/express-checkout/how-to/ht_ec-recurringPaymentProfile-curl-etc
The APIs would allow you to do things like trial periods, setup fee, etc. For example here is a how to on building a freemium kind of model: https://www.x.com/developers/paypal/documentation-tools/express-checkout/how-to/ht_ec-freeTrialRecurringPayments-curl-etc

Paypal / Google checkout integration

Is it possible to integrate the Google Checkout API or Paypal API with my marketplace? I am using PHP to generate the market, one auction at the time. I have a MySQL database containing all of the market actions, however, I was wondering. Can I use either Google Checkout or Paypal to dynamically generate the Checkout process, and give the proceeded money to the user whose posted action, then notify me?
I am able to load User details from the MySQL database aswell.
I looked at the 'StackExchange' network, however; I could not figure out where to place this question. Therefore I assumed this was the best place ?
Google Checkout as the term implies is pretty much what it says - it allows a merchant to outsource their checkout operations to Google. I don't think it's a fit because in your case, "merchant" is "dynamic" - its different sellers across auctions. Additionally, Google Checkout isn't for person-to-person payments - its specifically for a merchant (store) to sell products and service at it's web site and have the checkout process handled by Google.
Look into Paypal Adaptive Payments.
You can also look into Amazon FPS .
I'm not familiar with your project's terms such as 'generate the market', 'market actions'
PayPal has reference tranactions in which you can charge same customer's credit card again without storing actual credit card.
Authorize.Net has CustomerPaymentProfile in which they store your customers's credit cards. Then you can submit each customer's paymanet profile, and they'll charge the card for you.
I'm not familiar with Google's automatic checkout without actual credit card.

How to get started on making a custom payment system using PHP?

Let's say, for the sake of discussion, my client does not want to use the Paypal api for transactions. I have already made a shopping cart. The user submits the items on the shopping cart and their credit card number.
Assuming I'm not using any api, how would I then charge the user's credit card for the items on the shopping cart? I understand that it is complex, just wondering what the general process is like and how to get started.
You're going to need to trigger a bank transaction, so obviously you're going to need to use an API at some level. I think the way to go would be to first learn in some detail how at least one of the popular commercial (by definition?) payment card processing services works, e.g.:
https://paymentvision.com/Payment-Gateway/Payment-Gateway-API.aspx
http://aws.amazon.com/fps/
https://www.firstdata.com/en_us/customer-center/merchants/support/first-data-global-gateway-api-software-landing.html
http://www.authorize.net/
The next step would be to design the "payment processing" subsystem of your PHP application/library around the "backend workflow" (perhaps using a 3rd party PHP library, if one is available), and do some testing.
Then I would plan for a security audit of your code & systems before you actually use it to handle payment card information on behalf of a customer/3rd party.
You can also capture all the card information and use an external payment processor. The problem is that you will be hit with major fees since it will be considered a keyed in and not swiped transaction.
If you don't want/like paypal, don want to use a payment processor like authorize.net, you could look at other options like stripe.com.
Find an payment gateway, such as authorize.net. With payment gateways such as this, your client will need to sign up for a merchant account with a credit card processing agency. You payment gateway can help you with this.
Then, you'll usually get a token or api key that you will use to connect to the payment gateways services. From php, you'll use cURL or fsockopen to connect to them. Securely send your api key, get a response, then send some other required message, get another response, and then send in credit card information and credit card holder information.
There are lots of PHP Libraries to choose from out there for different payment gateways. I'm not suggesting authorize.net, it was just an example. But when you find one you are happy with, and happy with the fees that are associated with processing credit cards, you can either use a prewritten library, or they payment gateway will provide you with and API that will tell you how to integrate with their system.
Payum efficiency proved by 1k+ stars on a GitHub, great comments and a million of downloads. Supports 50+ different payment gateways so you surely find what you need.

Taking payment on a website

Whats the recommended way to do this with Paypal (i've heard they're a nightmare to deal with).
Ideally the user would sign up with credit card details and then i'd process the payments through their banks? Is that how it works? With API's?
Ideally the user would sign up with
credit card details and then i'd
process the payments through their
banks? Is that how it works?
No. In a correctly designed system you never have access to your user's credit card number. It's your payment processor (eg PayPal, MoneyBookers, FastSpring, etc.) that takes care of processing your customer's credit card.
So your customer is taken to the payment processor's site (on a page which can be customized to use your company's logo etc.) and then your payment processor warns you when a purchase a made (for example by calling a specific URL).
With API's?
Yup, PayPal (and MoneyBookers and things like FastSpring) offer APIs for several languages (like Java APIs).
PayPal has a dev environment on which you can test these kind of functionalities, so does MoneyBookers if I recall correctly (also note that sometimes the dev environments are a bit buggy and/or down).
PayPal offers APIs for processing payments. Typically, the user is taken off your page to login into paypal and then paypal calls back to your site with approval/shipping info. The whole point is for the user to shield their credit card info from your site, making things safer.* You can use either the NVP (name-value pair) or SOAP protocol for development. There are also 3rd party libraries to simplify integration.
Check out the API reference here to get an idea:
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_api_reference
*PayPal does offer a Direct Payment API which allows your site to take credit cards directly and use PayPal as the gateway:
https://www.paypal.com/cgi-bin/webscr?cmd=_dcc_hub-outside

Categories