2017 © Pedro Peláez
 

library gmopg

GMO Payment Gateway API for simple credit card payments

image

sanmai/gmopg

GMO Payment Gateway API for simple credit card payments

  • Sunday, April 8, 2018
  • by sanmai
  • Repository
  • 1 Watchers
  • 0 Stars
  • 43 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 26 % Grown

The README.md

Build Status Coverage Status Maintainability Latest Stable Version License, (*1)

Installation

composer require sanmai/gmopg

Configuration

There are two ways to configure the API:, (*2)

  1. With global constants. Namely, you need to have defined:, (*3)

      // ショップ情報
    define('GMO_SHOP_ID', 'tshop0000001'); // ショップID
    define('GMO_SHOP_PASSWORD', 'qwerty'); // ショップ名
    define('GMO_SHOP_NAME', 'My Shop'); // ショップパスワード
    define('GMO_TRIAL_MODE', false);
    

    Where first three you can get from the management panel or from emails from GMO PG., (*4)

    The last constant GMO_TRIAL_MODE should be set to true if you're using a test shop password., (*5)

  2. By calling these static methods:, (*6)

    \GMO\API\Defaults::setShopID($shopId);
    \GMO\API\Defaults::setShopName($shopName);
    \GMO\API\Defaults::setPassword($shopPassword);
    
    // When using a test password, this constant is mandatory
    //define('GMO_TRIAL_MODE', true);
    

Testing payments

Currently there is no other way to enable a test mode other than by defining a constant GMO_TRIAL_MODE set to true., (*7)

define('GMO_TRIAL_MODE', true);

Testing payments with directly-entered card numbers with test environment credentials requires you to enable such payments as outlined in the documentation., (*8)

Basic usage

// A wrapper object that does everything for you.
$payment = new \GMO\ImmediatePayment();
 // Unique ID for every payment; probably should be taken from an auto-increment field from the database.
$payment->paymentId = 123;
$payment->amount = 1000;
// This card number can be used for tests.
$payment->cardNumber = '4111111111111111';
// A date in the future.
$payment->cardYear = '2020';
$payment->cardMonth = '7';
$payment->cardCode = '123';

// Returns false on an error.
if (!$payment->execute()) {
    $errors = $payment->getErrors();
    foreach ($errors as $errorCode => $errorDescription) {
        // Show an error code and a description to the customer? Your choice.
        // Probably you want to log the error too.
    }
    return;
}

// Success!
$response = $payment->getResponse();
/** @var \GMO\API\Response\ExecTranResponse $response */
// You would probably want to save the response in the database for future reference.
// The response can be used to query details about a transaction, make refunds and so on.

Array of $errors comes in a form similar to this:, (*9)

array(1) {
  'E01040010' =>
  string(34) "This order ID was used previously."
}

A list of most known error codes. In a readable form. And another., (*10)

A typical $response will look like so:, (*11)

class GMO\API\Response\ExecTranResponse#1 (9) {
  public $ACS =>
  string(1) "0"
  public $OrderID =>
  string(10) "1517000000"
  public $Forward =>
  string(7) "0afd1200"
  public $Method =>
  string(1) "1"
  public $PayTimes =>
  string(0) ""
  public $Approve =>
  string(7) "0112234"
  public $TranID =>
  string(28) "180111111111111111111344439"
  public $TranDate =>
  string(14) "20221222213141"
  public $CheckString =>
  string(32) "68b329da9893e34099c7d8ad5cb9c940"
}

Paying with a token

A payment object can accept a token received from the JavaScript API instead of credit card details:, (*12)

$payment = new \GMO\ImmediatePayment();
$payment->paymentId = 123; // Unique ID for every payment; see above
$payment->amount = 1000;
// Card details are unnecessary in this case
$payment->token = $_POST['token'];

if (!$payment->execute()) {
    // ... same as above
}

// ... same as above

One should use the above method of payment if they're getting the venerable error E61040001., (*13)

Transaction details

Now you naturally want to load transaction details for the current payment., (*14)

$searchTrade = new \GMO\API\Call\SearchTrade();
$searchTrade->OrderID = $payment->getResponse()->OrderID;
// Copy credential from the original payment
$payment->setupOther($searchTrade);

$response = $searchTrade->dispatch();

In this $response you would find these fields:, (*15)

class GMO\API\Response\SearchTradeResponse#4950 (21) {
  public $AccessID =>
  string(32) "b026324c6904b2a9cb4b88d6d61c81d1"
  public $AccessPass =>
  string(32) "26ab0db90d72e28ad0ba1e22ee510510"
  public $OrderID =>
  string(10) "1517000000"
  public $Status =>
  string(5) "SALES"
  public $ProcessDate =>
  string(14) "20221222213141"
  public $JobCd =>
  string(5) "SALES"
  public $ItemCode =>
  string(7) "0000000"
  public $Amount =>
  string(4) "4999"
  public $Tax =>
  string(1) "0"
  public $SiteID =>
  string(0) ""
  public $MemberID =>
  string(0) ""
  public $CardNo =>
  string(16) "************1111"
  public $Expire =>
  string(4) "2307"
  public $Method =>
  string(1) "1"
  public $PayTimes =>
  string(0) ""
  public $Forward =>
  string(7) "0afd1200"
  public $TranID =>
  string(28) "180111111111111111111344439"
  public $Approve =>
  string(7) "0112234"
  public $ClientField1 =>
  string(0) ""
  public $ClientField2 =>
  string(0) ""
  public $ClientField3 =>
  string(0) ""
}

Futher API Documentation

GMO-PG is very secretive seemingly for no reason at all (that's a complete opposite of Stripe), and typically you can only access their documentation upon signing a non-disclosure agreement., (*16)

The Versions

08/04 2018

dev-master

9999999-dev

GMO Payment Gateway API for simple credit card payments

  Sources   Download

MIT

The Requires

 

The Development Requires

08/04 2018

dev-add-stickler-config

dev-add-stickler-config

GMO Payment Gateway API for simple credit card payments

  Sources   Download

MIT

The Requires

 

The Development Requires

09/02 2018

v1.1.1

1.1.1.0

GMO Payment Gateway API for simple credit card payments

  Sources   Download

MIT

The Requires

 

The Development Requires

09/02 2018

dev-tenant-euc-jp

dev-tenant-euc-jp

GMO Payment Gateway API for simple credit card payments

  Sources   Download

MIT

The Requires

 

The Development Requires

06/02 2018

v1.1

1.1.0.0

GMO Payment Gateway API for simple credit card payments

  Sources   Download

MIT

The Requires

 

The Development Requires

28/11 2017

v1.0

1.0.0.0

GMO Payment Gateway API for simple credit card payments

  Sources   Download

MIT

The Requires

 

The Development Requires