Files
2026-10-06 12:10:09 +09:00

72 lines
2.2 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace Common;
require_once __DIR__ . '/PaymentInterface.php';
/**
* クレジットカード決済を行うクラス
*/
class CreditCardPayment implements PaymentInterface
{
/** @var string カード番号 */
private $cardNumber;
/** @var string カード名義人 */
private $cardHolder;
/**
* コンストラクタ
*
* @param string $cardNumber カード番号
* @param string $cardHolder カード名義人
*/
public function __construct($cardNumber, $cardHolder)
{
// TODO: カード番号とカード名義人をプロパティに設定してください
}
/**
* クレジットカードで決済を実行する
*
* @param int $amount 決済金額(円)
* @return bool 決済が成功したかどうか
*/
public function pay($amount)
{
// TODO: 以下の情報を表示して、最後に true を返してください
// - "💳 クレジットカード決済処理"
// - "カード番号: " に続けてマスキングされたカード番号(maskCardNumber メソッドを使用)
// - "名義人: " に続けてカード名義人
// - "決済金額: ¥" に続けて金額をカンマ区切りで表示(number_format 関数を使用)
// - "決済が完了しました。"
// ※各行の最後に <br> を付けること
}
/**
* 決済方法の名前を取得する
*
* @return string 決済方法名
*/
public function getPaymentMethodName()
{
// TODO: "クレジットカード" という文字列を返してください
}
/**
* カード番号をマスキングする(セキュリティのため)
*
* @param string $cardNumber カード番号
* @return string マスキングされたカード番号
*/
private function maskCardNumber($cardNumber)
{
// TODO: カード番号を「****-****-****-最後の4桁」の形式でマスキングしてください
// ヒント:
// 1. explode('-', $cardNumber) でカード番号を '-' で分割して配列にする
// 2. 配列の要素数が4つの場合、最後の要素($parts[3])以外を「****」に置き換える
// 3. "****-****-****-" と最後の4桁を結合して返す
// 4. 配列の要素数が4つでない場合は "****-****-****-****" を返す
}
}