paysysの決済をphpでやる

Paysys ペイシスの決済をphpでやるサンプル

https://api.paysys.jp/api/reference    みてもよくわからないという方のためnのサンプルです

<?php
// リクエストデータの準備
$request = [
    'settlement_type' => 'once',  // 都度決済
    'basic_order_parameters' => [
        'order_name' => "カード支払い",
        'order_price' => $rem3,  // ダブルクォートに変更し変数展開
        'name1' => $name1,  // ダブルクォートに変更し変数展開
        'name2' => $name2,  // ダブルクォートに変更し変数展開
        'kana1' => $name3,  // ダブルクォートに変更し変数展開
        'kana2' => $name4,  // ダブルクォートに変更し変数展開
        'mail' => $mail1,  // ダブルクォートに変更し変数展開
        'tel' => $tel1,  // ダブルクォートに変更し変数展開
        'delivery_type' => "mail",
        'transaction_id' => "123456",  //一意の数字など ダブルクォートに変更し変数展開
    ],
    'store_transaction_law_items' => [  
// 特商法表示に関する設定※item_9831などは設定の特定項目内容管理 一覧のAPIキーに合わせる
        'item_9831' => '1',  // 分量
        'item_9832' => "{$rem33}円",  // ダブルクォートに変更し変数展開
        'item_9833' => "即カード払い",  // 支払時期・方法
        'item_9834' => "指定",  // 引渡・提供時期
        'item_9835' => "{$rem2}",  // 申込期間
        'item_9836' => "申込の中止はなし",  // 申込の撤回、解除
        
        'item_0458' => $rem1,  // ダブルクォートに変更し変数展開
        'item_0459' => $rem2,  // ダブルクォートに変更し変数展開
        'item_0460' => $rem4,  // ダブルクォートに変更し変数展開

    ]
];


// ペイシスAPIのチャンネル秘密鍵とチャンネルID※管理者の画面からダウンロードして取得する
$ChannelSecretKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx';  // 自分のチャンネル秘密鍵を設定
$ChannelId = 'xxxxxxxxxxxxxxxxxxxxxx';  // ペイシスの管理画面から取得したチャンネルID

// nonce (一意な値)
$nonce = (string)microtime(TRUE);

// 署名生成 (HMAC-SHA256)
$signaturePayload = $ChannelSecretKey . json_encode($request) . $nonce;
$signature = base64_encode(hash_hmac('sha256', $signaturePayload, $ChannelSecretKey, true));

// APIエンドポイント
$url = 'https://api.paysys.jp/api/orders';  // 正しいエンドポイントに変更

// cURL初期化
$ch = curl_init($url);

// cURLオプションの設定
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'X-Paysys-Channel-Id: ' . $ChannelId,
    'X-Paysys-Authorization-Nonce: ' . $nonce,
    'X-Paysys-Authorization: ' . $signature
));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($request));

// APIリクエスト実行
$response = curl_exec($ch);

// HTTPステータスコードの取得
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

// エラーチェック
if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
} else {
    echo 'HTTP Status Code: ' . $httpcode . "\n";
    echo 'Response: ' . $response . "\n";
}

// cURLセッションを閉じる
curl_close($ch);


header("Location: {$hp_url}/");//URLでthanksぺーじなどに飛ばす
exit;

管理画面のメール配信履歴 一覧に送信済みと表示されます。

以上です。https://mp-paysys.zendesk.com/hc/ja

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です