Rakuten Pay Online LITE PHP bindings
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
tests
.coveralls.yml
.gitignore
.travis.yml
LICENSE
README.md
composer.json
init.php
phpunit.xml
test.php

README.md

Rakuten Pay Online LITE PHP bindings

Build Status Coverage Status Latest Stable Version

楽天ペイ(オンライン決済 LITE版)のAPIをPHPで利用するためのSDKです。

動作環境

PHP 5.4.45 以上

Composer でのインストール

ご利用になりたいプロジェクトで、SDKをダウンロードしてください。

$ php composer.phar require rpayonline/rpayonline-lite-php

ソースコード上でComposerのautoloadingを使ってSDKを読み込んで下さい。

require_once('vendor/autoload.php');

手動でのインストール

ソースコードを直接ダウンロードしていただき、任意のパスよりinit.phpを読み込んで下さい。

require_once('/path/to/rpayonline-lite-php/init.php');

手動でのインストールの場合、下記のパッケージが別途必要になります。

依存パッケージ

使い方

お支払ボタンの作成

// 秘密鍵を設定
\RpayLite\RpayLite::setApiKey('live_private_xxxx');

// Itemオブジェクト作成します
$item = new \RpayLite\Item();
$item->id = 'itemId-001';
$item->name = '商品名';
$item->unit_price = 2000;
$item->quantity = 1;

// お支払ボタンのオブジェクトを作成
$button = new \RpayLite\Button();

// お支払ボタンにItemオブジェクトを追加
$button->addItem($item);

// カートIDを設定
$button->cart_id = 'my_cart_id';

// 公開鍵を設定
$button->key = 'live_public_xxxx';

// お支払ボタンの<script>タグの出力
echo $button->toHtml();

結果

<script src="https://lite.checkout.rakuten.co.jp/s/js/checkout-lite-v1.js" class="checkout-lite-button" data-key="live_public_xxxx" data-cart-id="my_cart_id" data-item-id-1="itemId-001" data-item-name-1="商品名" data-item-unit-price-1="2000" data-item-quantity-1="1" data-sig="0ff1233264f94049c1cc2db07edc3648a51e5466"></script>

決済情報の取得

// 秘密鍵を設定
\RpayLite\RpayLite::setApiKey('live_private_xxxx');

// 注文番号を指定してChargeオブジェクトを取得
$charge = \RpayLite\Charge::retrieve('1250000255-12345678-0123456789');

決済の確定

// 秘密鍵を設定
\RpayLite\RpayLite::setApiKey('live_private_xxxx');

// 注文番号を指定してChargeオブジェクトを取得
$charge = \RpayLite\Charge::retrieve('1250000255-12345678-0123456789');

// 確定処理を実行
$charge->capture();

決済の払い戻し

// 秘密鍵を設定
\RpayLite\RpayLite::setApiKey('live_private_xxxx');

// 注文番号を指定してChargeオブジェクトを取得
$charge = \RpayLite\Charge::retrieve('1250000255-12345678-0123456789');

// 払い戻しを実行
$charge->refund([
    "item_id_1" => "item-001",
    "item_name_1" => "商品名1",
    "item_quantity_1" => "2",
    "item_unit_price_1" => "1500"
]);

決済リストの取得

// 秘密鍵を設定
\RpayLite\RpayLite::setApiKey('live_private_xxxx');

// Chargeオブジェクトのリストを取得
$charges = \RpayLite\Charge::all([
    'limit' => 2,
    'offset' => 3,
    'payment[paid]' => 'true'
]);

foreach ($charges->data as $ch) {
    echo($ch);
}

メールの送信

// 秘密鍵を設定
\RpayLite\RpayLite::setApiKey('live_private_xxxx');

// Charge オブジェクトの取得
$charge = \RpayLite\Charge::retrieve('1250000255-12345678-0123456789');

// そのChargeオブジェクトの購入ユーザに対してメールを送信する
$notification = \RpayLite\Notification::create([
    'charge' => $charge->id,
    'subject' => '件名',
    'body' => '本文 \n #CUSTOMER_NAME# 。',
    'type' => 'notification.mail'
]);

メール送信済み情報の取得

// 秘密鍵を設定
\RpayLite\RpayLite::setApiKey('live_private_xxxx');

// Charge オブジェクトのIDに紐づく、特定のIDを持ったメールの情報を取得。
$notification = \RpayLite\Notification::retrieve(
    '1250000255-12345678-0123456789',
    'ntfn_77cc7ad01dee4772a2f4ed4c9778da89'
);

メール送信済リストの取得

// 秘密鍵を設定
\RpayLite\RpayLite::setApiKey('live_private_xxxx');

// Charge オブジェクトのIDに紐づく全てのメールの情報を取得
$notifications = \RpayLite\Notification::all(["charge" => '1250000255-12345678-0123456789']);

Webhook

// 事前にDashboardより、WebhookのSignatureを入手し、設定して下さい。
\RpayLite\RpayLite::setWebhookSignature('webhook_xxxxxxxxxx');

// Httpサーバで、Webhookのリクエストヘッダ(X-Lite-Webhook-Signature)を受け取って下さい。
$header = $_SERVER['HTTP_X_LITE_WEBHOOK_SIGNATURE']

// Httpサーバで、Webhookのリクエストボディを受け取って下さい
$body = file_get_contents('php://input');

// Event オブジェクトを生成
$event = \RpayLite\Webhook::constructEvent($body, $header);

Httpクライアントのカスタマイズ

特定のProxyを通したり、タイムアウトの時間を設定したりする場合は、setApiClient() 関数を利用し、GuzzleのClientを作成して引数として設定します。Guzzleについては Guzzle 5.3のマニュアル をご参照下さい。

// httpクライアントに値を設定
$client = new GuzzleHttp\Client([
    'defaults' => [
        'timeout' => 20,
        'connect_timeout' => 10,
        'proxy' => 'tcp://localhost:80'
    ]
]);

// setApiClient関数で設定
Charge::setApiClient($client);

// APIをコール
Charge::all();

Contribution

当リポジトリに対するPull Requestは現在受け付けておりません。バグや機能改善のご要望は当社の楽天ペイ(オンライン決済 LITE版)のヘルプページ よりお問い合わせ下さい。

ライセンス

MITライセンスで配布しております。