クレジット登録変更API


概要

クレジットカードの登録・変更をするAPIです。


エンドポイント

メソッド URI Headers
POST /api/payment/credit Default

リクエストパラメーター

パラメーター名 内容 特記
credit_card_type tinyint カード種類 クレジットカードのブランド
1 : VISA
2 : MASTER
3 : JCB
4 : AMEX
5 : DINERS
credit_card_number string カード番号 GMO JSのgetTokenメソッドにて取得した、間に*でマスク入っているカード番号
credit_card_nominee string カード名義人
credit_card_effective_month string 有効期限 月 2桁で送る
credit_card_effective_year string 有効期限 年 2桁で送る
credit_card_token string カードトークン GMO JSのgetTokenメソッドにて取得したトークン
{
    'credit_card_number'          : '41111********111',
    'credit_card_nominee'         : 'MASATOSHI KUMAGAI',
    'credit_card_effective_month' : '10',
    'credit_card_effective_year'  : '25',
    'credit_card_token'           : 'fa98erqp98hj23qja4op9348ytup498hjliwohjf98w3ayu4toiyu34to9yw39g8'
}

レスポンス

成功時
パラメーター名 内容 特記
result boolean リクエスト結果
{
    "result"   : true,
    "errors"   : "",
    "data"     : {},
}


失敗時

GMOのクレジットカードチェックAPIでエラーが返却された時に、ブラウザに返却するエラー

ステータスコード:200

パラメーター名 内容 特記
result boolean リクエスト結果
errors array エラーメッセージ
{
  "result"   : false,
  "errors"   : {
    'カード会社略称が最大バイト数を超えています。',
    'カード番号が指定されていません。'
  },
  "data"     : "",
}

{danger} 上記のエラー以外の場合は200以外のエラーコードが返却されます。共通ルールのレスポンスをチェック。


バリデーション

{primary} 本機能で取得するデータに対してのvalidationを明記します

画面項目名 フィールド名 チェック内容 備考
カード番号 credit_card_number required


numeric


digits:16
セキュリティーコード credit_card_secure_number required


numeric
カード名義人 credit_card_nominee required


string
カード有効期限 月 credit_card_effective_month required


digits:2
カード有効期限 年 credit_card_effective_year required


digits:2

バリデーション通過後の処理

{primary} GMOのAPIを使い、利用可能なクレジットカードかどうかの確認をします。

GMO PAYMENT GATEWAYのAPIに会員登録処理を行います

リクエストパラメータ

パラメーター名 内容 特記
SiteID char サイトID GMO APIのサイトIDです。
実装時はconfig/gmo_payment.phpに設定しているgmo_payment.site.SiteIDの値を使用します。
SitePass char サイトパスワード GMO APIのサイトパスワードです。
実装時はconfig/gmo_payment.phpに設定している
MemberID varchar セキュリティコード DBに保存はしない。GMOのAPIで必要の可能性あり。
credit_card_nominee string カード名義人
credit_card_effective int 有効期限 @todo型の確認が必要
{
    'gmo_id'                    : 1,
    'credit_card_number'        : 1111222233334444,
    'credit_card_secure_number' : 123,
    'credit_card_nominee'       :'カード名義人',
    'credit_card_effective'     :'2022/10',
}

GMOのAPIのレスポンス

成功時
パラメーター名 内容 特記
result boolean リクエスト結果
{
    "result"   : true,
    "errors"   : "",
    "data"     : {},
}
失敗時
パラメーター名 内容 特記
result boolean リクエスト結果
credit_card_number string not null / ~16 / integer @todo バリデーション変更の可能性あり
credit_card_secure_number string not null / 3~ / integer @todo バリデーション変更の可能性あり
credit_card_nominee string not null @todo 桁数の確認が必要
credit_card_effective string not null / integer
{
  "result"   : false,
  "errors"   : {
    'credit_card_number'       : '必須項目です|桁数が足りません|有効な数字ではありません',
    'credit_card_secure_number': '必須項目です|桁数が足りません|有効な数字ではありません'
    'credit_card_nominee'      : '必須項目です',
    'credit_card_effective'    : '必須項目です|有効な数字ではありません',
  },
  "data"     : "",
}

{danger} 上記のエラー以外の場合は200以外のエラーコードが返却されます。共通ルールのレスポンスをチェック。


処理の注意

項目 注意点
credit_card_number numberからカード種類判別すること
gmoへの登録 GMOクレジット登録実行が必要となる。
gmo_id 一応本当に新規か判定すること

※ gmoAPIが不明(2021.09.08)


データストア

{primary} GMOのクレジットカードチェックAPIで、バリデーションチェック通過時にデータストアを行います。
organization_payment_settingsテーブルのレコードが存在する時のみ更新します。
該当レコードが存在しない場合この更新処理は行いません。

organization_payment_settings

物理名 フィールド名 備考
GMOの管理ID gmo_id int 新規の場合はnullが入る
カード番号 credit_card_number varchar
カード名義人 credit_card_nominee string
有効期限 credit_card_effective int @todo変更の可能性あり

RUN