servermgrv2/app/Libraries/Adapter/Payment/CookiePayment.php
2023-08-16 09:16:16 +09:00

67 lines
2.5 KiB
PHP

<?php
namespace App\Libraries\Adapter\Payment;
use App\Libraries\Adapter\API\CurlAPI as APIAdapter;
// 참고:
// https://techhub.hpe.com/eginfolib/servers/docs/HPRestfultool/iLo4/data_model_reference.html
// https://github.com/SyntaxPhoenix/iloclient
class CookiePayment extends Payment
{
public function __construct($debug = false)
{
parent::__construct($debug);
}
private function getToken()
{
$adapter = new APIAdapter();
$adapter->setHeader("content-type", "application/json; charset=utf-8");
/* 토큰 발행 API */
$adapter->setURL(getenv("payment.card.pay2.token_url") ?: "{TOKEN 발행 URL}");
$adapter->setDatas(array(
'pay2_id' => getenv("payment.card.pay2.id") ?: 'cookiepayments에서 발급받은 ID',
'pay2_key' => getenv("payment.card.pay2.key") ?: 'cookiepayments에서 발급받은 연동키',
));
$token = $adapter->execute();
/* 여기 까지 */
if ($token['RTN_CD'] != '0000') {
throw new \Exception("Cookipay에서 Token을 받는데 실패했습니다.");
}
return $token;
}
protected function execute_process(): object
{
$adapter = new APIAdapter();
$adapter->setHeader("content-type", "application/json; charset=utf-8");
$adapter->setHeader("ApiKey", getenv("payment.card.pay2.apikey") ?: "COOKIEPAY에서 발급받은 연동키");
$adapter->setHeader("TOKEN", $this->getToken());
$adapter->setURL(getenv("payment.card.pay2.url") ?: "{요청도메인}/keyin/payment");
$datas = $this->getDatas();
// array(
// 'API_ID' => 'COOKIEPAY에서 발급받은 가맹점연동 ID',
// 'ORDERNO' => '주문번호',
// 'PRODUCTNAME' => '상품명',
// 'AMOUNT' => '결제금액',
// 'BUYERNAME' => '고객명',
// 'BUYEREMAIL' => '고객 E-MAIL',
// 'CARDNO' => '카드번호',
// 'EXPIREDT' => '카드유효기간',
// 'PRODUCTCODE' => '상품코드',
// 'BUYERID' => '고객 ID',
// 'BUYERADDRESS' => '고객 주소',
// 'BUYERPHONE' => '고객 휴대폰번호',
// 'QUOTA' => '할부개월',
// 'ETC1' => '추가필드 1',
// 'ETC2' => '추가필드 2',
// 'ETC3' => '추가필드 3',
// 'ETC4' => '추가필드 4',
// 'ETC5' => '추가필드 5',
// )
$adapter->setDatas($datas);
return $adapter->execute();
}
}