rpayonline/rpayonline-lite-php

1.0.0 2017-07-31 01:56 UTC

README

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ライセンスで配布しております。