ECサイトやWebサービスに欠かせないのが決済システムです。世の中に数ある決済サービスの中から今回は「Square」という決済サービスをシステムへ導入していきます。
バージョン
Laravel 8.60.0
Square API Version 2021-09-15
前回までで決済フォームの作成まで完了しました。
今回は実際に決済を行う処理を作っていきます。
SDKの導入
Squareは各種決済処理のためのAPIを提供しています。
Curlでも可能ですがPHP向けにSDKが用意されているので今回はこちらを導入して使っていきましょう。
下記のコマンドを実行してください。
composer require square/square
これで、SDKの導入は完了です。
決済処理の実装
今回はSquareServiceというクラスを作成し、そこに処理を書いていきましょう。
app/Services/SquareService.phpファイルを作成し、以下のようにコンストラクタを設定します。
<?php
namespace App\Services;
use Square\SquareClient;
class SquareService
{
public function __construct()
{
// スクエアアカウント設定
$this->client = new SquareClient([
'accessToken' => config('square.token'),
'environment' => config('square.env'),
]);
}
}
コンストラクタでSquareアカウントの設定をしています。
コンストラクタではなくサービスプロバイダに設定してしまってもいいかもしれませんが、お好みで変えてください。
続いて、決済処理用のメソッドを作成していきます。
まずコントローラに以下のように記述してください。
<?php
namespace App\Http\Controllers;
use App\Services\SquareService;
use Illuminate\Http\Request;
class SquareController extends Controller
{
public function createPayment(Request $request)
{
try {
$squareSearvice = new SquareService();
$squareSearvice->createPayment($request->all());
return true;
} catch (\Exception $exception) {
throw new \Exception('決済エラーです');
}
}
}
次にSquareServiceに以下のメソッドを記述します。
public function createPayment($params)
{
$amount_money = new \Square\Models\Money();
$amount_money->setAmount(1000);
$amount_money->setCurrency('JPY');
$body = new \Square\Models\CreatePaymentRequest(
$params['sourceId'],
Str::uuid()->toString(),
$amount_money
);
$api_response = $this->client->getPaymentsApi()->createPayment($body);
if ($api_response->isSuccess()) {
$result = $api_response->getResult();
} else {
$errors = $api_response->getErrors();
throw new \Exception();
}
}
setAmountに金額を引数に渡すことでその値段で決済することができます。
CreatePaymentRequestの第2引数にはidempotencyKeyを設定するようですが、今回は適当な被らない文字列(または数字)を入れています。
さあ、これでもう決済をすることができます。
決済フォームで必要事項を入力して決済を実行してみてください。
決済後にSquareのsandboxコンソールを見てみましょう。
無事に決済できていることが確認できました!
もちろん、sandboxなので本当にクレジットカードに請求がいったり、振り込みがされることはありません。
テストでどんどん試してみてください。
今回紹介した随時決済以外にも、クレジットカード登録やカスタマー登録、その情報を使って定期決済なども可能です。
ドキュメントを参考に是非色々試してみてください。
関連記事
参考URL
2025年エンジニアの必読書
エンジニアなら読んでおきたい必読書を紹介します。
コード×AI―ソフトウェア開発者のための生成AI実践入門
もうプログラムを書く時代は終わりました。これを読めば「AIでここまでできるのか!」やばいな!と実感する一冊です。これを読まずにただ自力でプログラムを書いている人はもう手遅れになるかもしれません。
Amazonで購入するAIエディタCursor完全ガイド ―やりたいことを伝えるだけでできる新世代プログラミング
まだCursor使っていないの?こちらはAI機能が搭載されたエディタです。直近、AIの進化が著しく精度がかなり上がっています。もはや人を超えたと言っても過言ではないでしょう。Cursorを使えばもうプログラミングをすることはほぼなくなります。まだ使っていない方はこちらで使い方を学びましょう。
Amazonで購入する良いコード/悪いコードで学ぶ設計入門
初心者にもおすすめ!全エンジニアの良いコードの書き方のバイブルです。2024年12月25日に発売されたばかりの最新版が登場。AI時代でも良い設計は必須スキル。あなたのコーディングスキルが飛躍的に向上することでしょう。
Amazonで購入する