2017 © Pedro Peláez
 

library kakaopay-php

Kakaopay REST API wrapper for PHP

image

se468/kakaopay-php

Kakaopay REST API wrapper for PHP

  • Wednesday, April 11, 2018
  • by se468
  • Repository
  • 1 Watchers
  • 3 Stars
  • 11 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 57 % Grown

The README.md

Kakaopay REST API PHP wrapper

Latest Stable Version Total Downloads License, (*1)

Wrapper for Kakaopay REST API. Kakaopay provides convenient way to do internet transaction in Korea because it doesn't need a separate Payment Gateway (PG). The transaction is done only with the user's Kakaotalk account., (*2)

Official Kakaopay REST API documentation: here., (*3)

Example Implementation: here., (*4)

Demo: here., (*5)

Installation

Via Composer:, (*6)

composer require se468/kakaopay-php

Usage

Single payment process

Payment Ready

Used for requesting the user for the transaction. User will receive a message to confirm the transaction., (*7)

API Endpoint:, (*8)

POST /v1/payment/ready HTTP/1.1

Usage Example:, (*9)

$payment = new \se468\Kakaopay\Payment();
\se468\Kakaopay\Kakaopay::setAdminKey(env('KAKAOPAY_ADMIN_KEY'));

$result = $payment->ready([
    'cid' => 'TC0ONETIME',
    'partner_order_id' => 'partner_order_id',
    'partner_user_id' => 'partner_user_id',
    'item_name' => '초코파이',
    'quantity' => '1',
    'total_amount' => '2200',
    'vat_amount' => '200',
    'tax_free_amount' => '0',
    'approval_url' => 'http://package-development.valet/kakaopay/success',
    'cancel_url' => 'http://package-development.valet/kakaopay/fail',
    'fail_url' => 'http://package-development.valet/kakaopay/cancel'
]);

Here's the explanation of the process:, (*10)

  • Result from payment/ready will have transation ID, or tid ($result->tid), which you can safely store in your session., (*11)

  • Store the tid in session and redirect to $result->next_redirect_pc_url. Customer will be prompted to enter their Kakaopay phone number and password., (*12)

  • After the customer fills in the form, they will receive a message in their Kakaotalk to approve the transaction. The screen will then redirect to the approval_url that you've provided., (*13)

  • You can then call payment/approve using the tid stored in the session and it will process the payments., (*14)

Payment Approve

With the given tid from payment ready, approve the transaction to finalize., (*15)

POST /v1/payment/approve HTTP/1.1

Example:, (*16)

$payment = new \se468\Kakaopay\Payment();
\se468\Kakaopay\Kakaopay::setAdminKey(env('KAKAOPAY_ADMIN_KEY'));
$result = $payment->approve([
    'cid' => 'TC0ONETIME',
    'tid' => 'T1234567890123456789', //tid received from result from 'ready'
    'partner_order_id' => 'partner_order_id',
    'partner_user_id' => 'partner_user_id',
    'pg_token' => $input['pg_token']
]);
  • You can delete the tid after you get the result from here, and store the $result in your DB, which contains the information about the transaction and show it back to the customer.

Subscription Process

Payment Ready

Example Payment Ready for subscription, (*17)

$payment = new \se468\Kakaopay\Payment();
\se468\Kakaopay\Kakaopay::setAdminKey(env('KAKAOPAY_ADMIN_KEY'));

$result = $payment->ready([
    'cid' => 'TCSUBSCRIP',
    'partner_order_id' => 'partner_order_id',
    'partner_user_id' => 'partner_user_id',
    'item_name' => '음악정기결제',
    'quantity' => '1',
    'total_amount' => '9900',
    'vat_amount' => '900',
    'tax_free_amount' => '0',
    'approval_url' => 'http://package-development.valet/kakaopay/subscription/success',
    'cancel_url' => 'http://package-development.valet/kakaopay/subscription/fail',
    'fail_url' => 'http://package-development.valet/kakaopay/subscription/cancel'
]);

Note that only thing different here from single payment is the cid parameter., (*18)

Payment Approve

Check the documentation for single payment. It is exactly same process., (*19)

Subscription from second payment

On going subscription fees can be called like the following:, (*20)

POST /v1/payment/subscription HTTP/1.1

Example:, (*21)

$payment = new \se468\Kakaopay\Payment();
\se468\Kakaopay\Kakaopay::setAdminKey(env('KAKAOPAY_ADMIN_KEY'));

$result = $payment->subscription([
    'cid' => 'TCSUBSCRIP', // cid for testing
    'sid' => 'S1234567890987654321',
    'partner_order_id' => 'subscription_order_id_1',
    'partner_user_id' => 'subscription_user_id_1',
    'item_name' => '음악정기결제',
    'quantity' => '1',
    'total_amount' => '9900',
    'vat_amount' => '900',
    'tax_free_amount' => '0',
]);

Cancelling Payments

POST /v1/payment/cancel HTTP/1.1
$payment = new \se468\Kakaopay\Payment();
\se468\Kakaopay\Kakaopay::setAdminKey(env('KAKAOPAY_ADMIN_KEY'));

$result = $payment->cancel([
    'cid' => 'TC0ONETIME', // cid for testing
    'tid' => 'T1234567890123456789',
    'cancel_amount' => '2200',
    'cancel_tax_free_amount' => '0',
    'cancel_vat_amount' => '200',
    'cancel_available_amount' => '4000',
]);

Order checking

GET/POST /v1/payment/order HTTP/1.1

Example:, (*22)

$payment = new \se468\Kakaopay\Payment();
\se468\Kakaopay\Kakaopay::setAdminKey(env('KAKAOPAY_ADMIN_KEY'));

$result = $payment->order([
    'cid' => 'TC0ONETIME', // cid for testing
    'tid' => 'T1234567890123456789',
]);

Checking the Subscription information

POST /v1/payment/manage/subscription/status HTTP/1.1

Example:, (*23)

$payment = new \se468\Kakaopay\Payment();
\se468\Kakaopay\Kakaopay::setAdminKey(env('KAKAOPAY_ADMIN_KEY'));

$result = $payment->order([
    'cid' => 'TCSUBSCRIP', // cid for testing
    'tid' => 'S1234567890987654321',
]);

Deactivating Subscription

POST /v1/payment/manage/subscription/inactive HTTP/1.1

Example:, (*24)

$payment = new \se468\Kakaopay\Payment();
\se468\Kakaopay\Kakaopay::setAdminKey(env('KAKAOPAY_ADMIN_KEY'));

$result = $payment->inactive([
    'cid' => 'TCSUBSCRIP', // cid for testing
    'sid' => 'S1234567890987654321',
]);

The Versions

11/04 2018

dev-master

9999999-dev

Kakaopay REST API wrapper for PHP

  Sources   Download

MIT

The Requires

 

The Development Requires

php kakaopay kakaopay-rest-api kakaotalk

09/04 2018

v0.0.3

0.0.3.0

Kakaopay REST API wrapper for PHP

  Sources   Download

MIT

The Requires

 

The Development Requires

php kakaopay kakaopay-rest-api kakaotalk

07/04 2018

v0.0.2

0.0.2.0

Starting point for Laravel package development.

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel package

07/04 2018

v0.0.1

0.0.1.0

Starting point for Laravel package development.

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel package