Downloads
Stars
Version
Laravel ECPay 為串接綠界的非官方套件
composer require tsaiyihua/laravel-ecpay
php artisan vendor:publish --tag=ecpay
這裡會將設定檔 ecpay.php 複製一份到 config 的目錄下。
ECPAY_MERCHANT_ID=
ECPAY_HASH_KEY=
ECPAY_HASH_IV=
ECPAY_INVOICE_HASH_KEY=
ECPAY_INVOICE_HASH_IV=
use TsaiYiHua\ECPay\Checkout;
class CheckoutController extends Controller
{
protected $checkout;
public function __construct(Checkout $checkout)
{
$this->checkout = $checkout;
}
public function sendOrder()
{
$formData = [
'UserId' => 1, // 用戶ID , Optional
'ItemDescription' => '產品簡介',
'ItemName' => 'Product Name',
'TotalAmount' => '2000',
'PaymentMethod' => 'Credit', // ALL, Credit, ATM, WebATM
];
return $this->checkout->setPostData($formData)->send();
}
return $this->checkout->setPostData($formData)->withInstallment('3,6')->send();
承上,加上參數,帶入 withPeriodAmount 即可
...
$periodAmt = [
'PeriodAmount' => 2550,
'PeriodType' => 'M',
'Frequency' => '1',
'ExecTimes' => 10,
'PeriodReturnURL'
];
return $this->checkout->setPostData($formData)->withPeriodAmount($periodAmt)->send();
use TsaiYiHua\ECPay\Checkout;
class CheckoutController extends Controller
{
protected $checkout;
public function __construct(Checkout $checkout)
{
$this->checkout = $checkout;
}
public function sendOrder()
{
$items[0] = [
'name' => '產品333',
'qty' => '3',
'unit' => '個',
'price' => '150'
];
$formData = [
'itemDescription' => '產品簡介',
'items' => $items,
'paymentMethod' => 'Credit',
'userId' => 1
];
$invData = [
'Items' => $items,
'UserId' => 1,
'CustomerName' => 'User Name',
'CustomerAddr' => 'ABC 123',
'CustomerEmail' => 'email@address'
];
return $this->checkout->setPostData($formData)->withInvoice($invData)->send();
}
use TsaiYiHua\ECPay\QueryTradeInfo;
class QueryTradeController extends Controller
{
protected $queryTradeInfo;
public function __construct(QueryTradeInfo $queryTradeInfo)
{
$this->queryTradeInfo = $queryTradeInfo;
}
public function queryInfo($orderId)
{
return $this->queryTradeInfo->getData($orderId)->query();
}
}
use TsaiYiHua\ECPay\QueryInvoice;
class QueryInvoiceController extends Controller
{
protected $queryInvoice;
public function __construct(QueryInvoice $queryInvoice)
{
$this->queryInvoice = $queryInvoice;
}
public function queryInvInfo($orderId)
{
return $this->queryInvoice->getData($orderId)->query();
}
}
use TsaiYiHua\ECPay\Invoice;
use TsaiYiHua\ECPay\Constants\ECPayDonation;
use TsaiYiHua\ECPay\Services\StringService;
class InvoiceController extends Controller
{
public function __construct(Invoice $invoice)
{
$this->invoice = $invoice;
}
public function issueInvoice()
{
$itemData[] = [
'name' => 'product name',
'qty' => 1,
'unit' => 'piece',
'price' => 5000
];
$invData = [
'UserId' => 1,
'Items' => $itemData,
'CustomerName' => 'User Name',
'CustomerEmail' => '[email protected]',
'CustomerPhone' => '0912345678',
'OrderId' => StringService::identifyNumberGenerator('O'),
'Donation' => ECPayDonation::Yes,
'LoveCode' => 168001,
'Print' => 0,
'CarruerType' => 1
];
return $this->invoice->setPostData($invData)->send();
}
}
ECPay::ignoreRoutes();