Skip to content
This repository has been archived by the owner on Mar 18, 2020. It is now read-only.

Commit

Permalink
Fix mixed sandbox mode and improve support for non-US merchants
Browse files Browse the repository at this point in the history
  • Loading branch information
drbyte committed Aug 11, 2016
1 parent aee2a6c commit 783ce4e
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 44 deletions.
32 changes: 26 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
The Payeezy JS payment service is a PCI Compliant payment solution which *does* show credit card fields on your store, to accept credit card payments, but does *all* the processing offsite (via background javascript/ajax processing), so that none of the card data ever touches your store/server.
There is no redirecting of customers offsite, so customers enjoy a more seamless checkout experience.

The payment gateway is powered by First Data, and is availalble to all First Data and Global Gateway E4 merchants.
The payment gateway is powered by First Data, and is available to all First Data and Global Gateway E4 merchants.

## Compatibility

Expand All @@ -29,15 +29,35 @@ Simply upload these files into the corresponding folders on your own store:
### Admin module configuration
This module requires that you enter 5 configuration settings from your Payeezy and GGe4 account:

* API Key: From your Payeezy account
* API Secret: From your Payeezy account
* Merchant Token: From your Payeezy account
* JS Security Key: From your Payeezy account
* TA Token: From your GGe4 account ("Trans Armor Token")
* `API Key`: From your Payeezy account
* `API Secret`: From your Payeezy account
* `Merchant Token`: From your Payeezy account
* `JS Security Key`: From your Payeezy account
* `TA Token`: From your GGe4 account ("Trans Armor Token")

## Merchant Account Requirements

It uses your existing First Data or GGe4 merchant account after you create a profile on [payeezy.com](https://payeezy.com) and ask your First Data account rep to link the accounts.

Details at [Payeezy FAQs](https://developer.payeezy.com/faqs/current-first-data-merchant-i-want-transact-through-payeezy-apismobile-payments-what-process)

## Detailed Payeezy Merchant Setup Instructions
It may seem odd, but it starts out with creating a Payeezy Developer account, which then is linked to your live Merchant account. Don't be confused by the terminology ;)

1. Merchant Quick Registration

Sign up for a free Payeezy developer account at https://developer.payeezy.com. All you need is your First name, Last name and a valid email address. Note: Portal registration requires a valid e-mail address. Once registered, your email address cannot be changed in future. All e-mails from the Payeezy system will be sent to this registered email address. The e-mail address will not be made public and will only be used if you wish to receive notifications by e-mail. After you provide registration information an email is sent to you with further instructions to activate your account.
2. Get Certified

Payeezy developer accounts need to be certified before being able to perform live transactions.
To get certified, a. Navigate to Account -> Get Certified. b. Enter your full profile information. c. Click on “Certify”. d. Save. You will be certified after submitting the CERTIFICATION form. This is basically immediate.
3. Add Merchant(s) Once your certification is complete, the developer portal will automatically redirect to “Add Merchant” page. Click on "Live" and then click on "Add a merchant".
• If you DO already have a Payeezy merchant account with First Data, select "Add your existing merchant account" and follow the instructions on the screen. In order for this to work, the First Data merchant account must be enabled for Payeezy API. If you are not sure what this is, check with the merchant service provider (ie: call your First Data rep).
• If you DO NOT have a Payeezy merchant account and need to apply for one, select "Sign up for a merchant account" and follow the instructions.

If you are unable to add your merchant account for some reason, email [email protected] with the Merchant ID (or storeID), DBA name and developer account email address. We (First Data) will add the merchant account to your developer account manually within 2 business days and send you a notification. After your merchant account is added and approved, you will see the `Merchant Token` and `JS Security Key`. The `TA_TOKEN` (or Transarmor token) can be obtained by logging in to https://globalgatewaye4.firstdata.com, navigating to the Terminals page and selecting your terminal.
If the Transarmor token is blank, it means that your account has not been enabled for Transarmor yet. To enable Transarmor for your account, you will need to reach out to your account representative or call 1-855-799-0790.

4. Create an API -- within Payeezy your registered API gives you a pair of Key/Secret values which allow you to do Payeezy transactions.
• Login to your Payeezy developer account and navigate to the "APIs" page. • Click the “+ ADD A NEW API” button. • On the next screen you name your application. Call it "My Store" or whatever you want to appear on reports.
• Choose "Sandbox” and "Live". • Click on “Create your API”. You will be taken back to the APIs page. • Click on the API you just created. You will see your `API key` and `API secret`. 5. Go Live In Zen Cart Enter the following in your Zen Cart module for Payeezy, as you obtained them from the steps above. `API Key` `API Secret` `Merchant Token` `JS_Security_Key` `TA_TOKEN` (Only required for US domiciled merchants; leave blank outside the US)
Expand Down
2 changes: 1 addition & 1 deletion includes/languages/english/modules/payment/payeezyjszc.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php
/**
* PayEezy payment module language defines
* Payeezy payment module language defines
*
* @package payeezy
* @copyright Copyright 2003-2016 Zen Cart Development Team
Expand Down
11 changes: 3 additions & 8 deletions includes/modules/pages/checkout_payment/jscript_payeezy.php
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<?php
/**
* Javascript to prep functionality for PayEezy payment module
* Javascript to prep functionality for Payeezy payment module
*
* @package payeezy
* @copyright Copyright 2003-2016 Zen Cart Development Team
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version GIT: $Id: Author: Ian Wilson New in v1.5.5 $
*/
if (defined('MODULE_PAYMENT_PAYEEZYJSZC_JSSECURITY_KEY') && MODULE_PAYMENT_PAYEEZYJSZC_JSSECURITY_KEY != '' && defined(MODULE_PAYMENT_PAYEEZYJSZC_STATUS) && MODULE_PAYMENT_PAYEEZYJSZC_STATUS == 'True') {
if (defined(MODULE_PAYMENT_PAYEEZYJSZC_STATUS) && MODULE_PAYMENT_PAYEEZYJSZC_STATUS == 'True' && ((defined('MODULE_PAYMENT_PAYEEZYJSZC_JSSECURITY_KEY') && MODULE_PAYMENT_PAYEEZYJSZC_JSSECURITY_KEY != '') || defined('MODULE_PAYMENT_PAYEEZYJSZC_JSSECURITY_KEY_SANDBOX') && MODULE_PAYMENT_PAYEEZYJSZC_JSSECURITY_KEY_SANDBOX != '')) {
?>
<script type="text/javascript"><!--

Expand Down Expand Up @@ -50,11 +50,6 @@ function t() {
}
return {
createToken: function(e) {
// Live
//var n = "api.payeezy.com";
// Sandbox
//var n = "api-cert.payeezy.com";

this["clientCallback"] = e;
var r = t();
var i = 0;
Expand Down Expand Up @@ -181,7 +176,7 @@ function t() {
}
};
var apiKey = '<?php echo MODULE_PAYMENT_PAYEEZYJSZC_API_KEY; ?>';
var js_security_key = '<?php echo MODULE_PAYMENT_PAYEEZYJSZC_JSSECURITY_KEY; ?>';
var js_security_key = '<?php echo constant('MODULE_PAYMENT_PAYEEZYJSZC_JSSECURITY_KEY' . (MODULE_PAYMENT_PAYEEZYJSZC_TESTING_MODE == 'Sandbox' ? '_SANDBOX' : '')); ?>';
var ta_token = '<?php echo MODULE_PAYMENT_PAYEEZYJSZC_TESTING_MODE == 'Sandbox' ? 'NOIW' : MODULE_PAYMENT_PAYEEZYJSZC_TATOKEN; ?>';
var auth = 'false'; // true is for $0 auths
var apiEndpoint = '<?php echo MODULE_PAYMENT_PAYEEZYJSZC_TESTING_MODE == 'Sandbox' ? 'api-cert.payeezy.com' : 'api.payeezy.com'; ?>';
Expand Down
Loading

0 comments on commit 783ce4e

Please sign in to comment.