Laravel 串接綠界(ECPay)的非官方套件 - GitHub

文章推薦指數: 80 %
投票人數:10人

use TsaiYiHua\ECPay\Checkout; class CheckoutController extends Controller { protected $checkout; public function __construct(Checkout $checkout) ... Skiptocontent {{message}} tsaiyihua / laravel-ecpay Public Notifications Fork 19 Star 46 Laravel串接綠界(ECPay)的非官方套件 46 stars 19 forks Star Notifications Code Issues 0 Pullrequests 0 Actions Projects 0 Wiki Security Insights More Code Issues Pullrequests Actions Projects Wiki Security Insights Thiscommitdoesnotbelongtoanybranchonthisrepository,andmaybelongtoaforkoutsideoftherepository. master Branches Tags Couldnotloadbranches Nothingtoshow {{refName}} default Couldnotloadtags Nothingtoshow {{refName}} default 3 branches 21 tags Code Latestcommit YihuaTsai Mergebranch'master'ofgithub.com:tsaiyihua/laravel-ecpay … 4800826 Feb11,2022 Mergebranch'master'ofgithub.com:tsaiyihua/laravel-ecpay 4800826 Gitstats 50 commits Files Permalink Failedtoloadlatestcommitinformation. Type Name Latestcommitmessage Committime config     documents     resources/views     src     .gitignore     composer.json     composer.lock     readme.md     Viewcode LaravelECPay 系統需求 安裝 環境設定 .env裡加入 用法 基本用法 需要分期付款時 定期定額扣款 範例 需要開立發票時 範例 查詢訂單 查詢發票 開立發票 套件中有設定和綠界溝通用的route及基本處理方法,如果要有自己的處理邏輯要用自己寫好的route,擔心和套件原設定的route衝突時 如果要用自己傳送資料的頁面 所有文件列的參數基本上都可用,參數用法請參考綠界串接文件 參考文件 readme.md LaravelECPay LaravelECPay為串接綠界的非官方套件 系統需求 v3.x PHP>=8.0 Laravel>=9.0 v2.x PHP>=7.2且<8.0 Laravel<9且>=6.0 v1.x(不維護更新) PHP>=7且<8.0 Laravel<6.0且>=5.7 安裝 composerrequiretsaiyihua/laravel-ecpay 環境設定 phpartisanvendor:publish--tag=ecpay 這裡會將設定檔ecpay.php複製一份到config的目錄下。

.env裡加入 ECPAY_MERCHANT_ID= ECPAY_HASH_KEY= ECPAY_HASH_IV= ECPAY_INVOICE_HASH_KEY= ECPAY_INVOICE_HASH_IV= 金流測試用的參數值請參考介接文件ecpay_gw_p110.pdf第11頁。

查詢發票用的參數請請參考介接文件ecpay_004.pdf第6頁。

用法 基本用法 產品資料單筆時可簡單只傳送ItemName及TotalAmount useTsaiYiHua\ECPay\Checkout; classCheckoutControllerextendsController { protected$checkout; publicfunction__construct(Checkout$checkout) { $this->checkout=$checkout; } publicfunctionsendOrder() { $formData=[ 'UserId'=>1,//用戶ID,Optional 'ItemDescription'=>'產品簡介', 'ItemName'=>'ProductName', 'TotalAmount'=>'2000', 'PaymentMethod'=>'Credit',//ALL,Credit,ATM,WebATM ]; return$this->checkout->setPostData($formData)->send(); } 需要分期付款時 加上withInstallment(分期期數) 信用卡分期可用參數為:3,6,12,18,24 ex:3,6 範例 承上,在return時,加上withInstallment即可 return$this->checkout->setPostData($formData)->withInstallment('3,6')->send(); 定期定額扣款 加上withPeriodAmount($periodAmt) 範例 承上,加上參數,帶入withPeriodAmount即可 ... $periodAmt=[ 'PeriodAmount'=>2550, 'PeriodType'=>'M', 'Frequency'=>'1', 'ExecTimes'=>10, 'PeriodReturnURL' ]; return$this->checkout->setPostData($formData)->withPeriodAmount($periodAmt)->send(); 需要開立發票時 加上withInvoice($invData)即可。

開立發票時,產品內容必須要符合即定格式傳送,不能只帶ItemName及TotalAmount 開立發票時,特店必須要有會員系統並傳送會員相關資料 測試開立發票時,MerchantID請設2000132 範例 useTsaiYiHua\ECPay\Checkout; classCheckoutControllerextendsController { protected$checkout; publicfunction__construct(Checkout$checkout) { $this->checkout=$checkout; } publicfunctionsendOrder() { $items[0]=[ 'name'=>'產品333', 'qty'=>'3', 'unit'=>'個', 'price'=>'150' ]; $formData=[ 'itemDescription'=>'產品簡介', 'items'=>$items, 'paymentMethod'=>'Credit', 'userId'=>1 ]; $invData=[ 'Items'=>$items, 'UserId'=>1, 'CustomerName'=>'UserName', 'CustomerAddr'=>'ABC123', 'CustomerEmail'=>'email@address' ]; return$this->checkout->setPostData($formData)->withInvoice($invData)->send(); } 查詢訂單 useTsaiYiHua\ECPay\QueryTradeInfo; classQueryTradeControllerextendsController { protected$queryTradeInfo; publicfunction__construct(QueryTradeInfo$queryTradeInfo) { $this->queryTradeInfo=$queryTradeInfo; } publicfunctionqueryInfo($orderId) { return$this->queryTradeInfo->getData($orderId)->query(); } } 查詢發票 useTsaiYiHua\ECPay\QueryInvoice; classQueryInvoiceControllerextendsController { protected$queryInvoice; publicfunction__construct(QueryInvoice$queryInvoice) { $this->queryInvoice=$queryInvoice; } publicfunctionqueryInvInfo($orderId) { return$this->queryInvoice->getData($orderId)->query(); } } 開立發票 useTsaiYiHua\ECPay\Invoice; useTsaiYiHua\ECPay\Constants\ECPayDonation; useTsaiYiHua\ECPay\Services\StringService; classInvoiceControllerextendsController { publicfunction__construct(Invoice$invoice) { $this->invoice=$invoice; } publicfunctionissueInvoice() { $itemData[]=[ 'name'=>'productname', 'qty'=>1, 'unit'=>'piece', 'price'=>5000 ]; $invData=[ 'UserId'=>1, 'Items'=>$itemData, 'CustomerName'=>'UserName', 'CustomerEmail'=>'[email protected]', 'CustomerPhone'=>'0912345678', 'OrderId'=>StringService::identifyNumberGenerator('O'), 'Donation'=>ECPayDonation::Yes, 'LoveCode'=>168001, 'Print'=>0, 'CarruerType'=>1 ]; return$this->invoice->setPostData($invData)->send(); } } 套件中有設定和綠界溝通用的route及基本處理方法,如果要有自己的處理邏輯要用自己寫好的route,擔心和套件原設定的route衝突時 在app/Http/Providers/AppServiceProvider的register加入 ECPay::ignoreRoutes(); 如果要用自己傳送資料的頁面 方法一:在.env裡使用ECPAY_SEND_FORM的環境變數來指定。

方法二:直接指定ECPay::$sendForm的值來指定。

所有文件列的參數基本上都可用,參數用法請參考綠界串接文件 回傳參數的背景通知(ReturnURL),套件裡有預設的網址,但只止於通知,如果要有寫入資料庫的設計,要再設計自己的回傳通知網址。

OrderResultURL為結帳完返回自已站台的網址,不能與ReturnURL相同。

參考文件 綠界科技全方位金流信用卡介接技術文件(2021-08-19) V5.2.8 文件編號gw_p110 文件位置documents/ecpay_gw_p110.pdf 綠界科技B2C電子發票介接技術文件(2022-01-03) V3.6.4 文件編號gw_i100 文件位置documents/ecpay_004.pdf 綠界科技全方位金流介接技術文件(2021-11-30) V5.3.11 文件編號gw_p100 文件位置documents/ecpay_011.pdf About Laravel串接綠界(ECPay)的非官方套件 Resources Readme Stars 46 stars Watchers 2 watching Forks 19 forks Releases 21 3.0.0 Latest Feb11,2022 +20releases Packages0 Nopackagespublished Languages PHP 99.7% Blade 0.3% Youcan’tperformthatactionatthistime. Yousignedinwithanothertaborwindow.Reloadtorefreshyoursession. Yousignedoutinanothertaborwindow.Reloadtorefreshyoursession.



請為這篇文章評分?