Skip to content
Laravel 套件,台灣藍新金流(智付通)企業會員金流串接
PHP HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
README.md
composer.json

README.md

Laravel 套件,台灣藍新金流(智付通)企業會員金流串接

  • Laravel 版本需求:5.5 以上
  • 藍新金流程式版本:1.5
  • 官方API文件下載:https://www.newebpay.com/website/Page/content/download_api
  • 串接藍新金流,必須登入藍新後台,創建商店,並取得該商店的 HashKey、HashIV
  • 串接時建議先至藍新的測試站申請企業會員帳號、創建測試商店,做串接測試
    正式站:https://www.newebpay.com
    測試站:https://cwww.newebpay.com
  • 本套件適用的支付:信用卡、Google Pay、Samsung Pay、WebATM、ATM轉帳、超商代碼繳費、條碼繳費
  • 信用卡、Google Pay、Samsung Pay 須先至藍新後台的商店設定內申請啟用
  • 藍新測試站所提供的測試信用卡號,可用來刷你產生的測試訂單:
    4000-2211-1111-1111 (一次付清與分期付款)
    4003-5511-1111-1111 (紅利折抵)
    註:有效月年及卡片背面末三碼,任意填寫即可。另外,測試站不接受其他卡號。
  • 其他本套件未說明之事項(例如:交易流程、錯誤代碼的含義),請參考官方API文件。

Installation

(1)用 composer 安裝套件

composer require datomon/laravel-newebpay

(2)建立資料表

php artisan migrate

(3)設定藍新金流的商店資訊參數到 .env 檔

php artisan newebpay:init  

Usage

在你要呈現訂單頁面的控制器中,用 create 方法產生結帳按鈕會用到的資料,並指派給前端的 blade 模版即可,範例如下:
(1)控制器

use Datomon\LaravelNewebpay\Library\NewebPay;

$newebpay = NewebPay::create([
    // 必填參數
    'MerchantOrderNo' => 訂單編號(不可重覆),  // 例:a00001
    'Amt' => 訂單總金額,  // 例:150
    'ItemDesc' => 商品資訊,  // 例:測試商品
    'Email' => 付款人電子信箱,  // 例:abc@example.com

    // 支付完成後,藍新傳送支付記錄的網址,此套件已寫好不必再指定。
    // 但如果你還是想自訂,就如下行去指定。但路由、控制器內容及存入資料表須行自編寫
    'NotifyURL' => 支付完成的網址,  // 例:http://www.example.com/notifyRes


    // 取號完成轉址的網址,此套件已寫好不必再指定。
    // 但如果你還是想自訂,就如下行去指定。但路由、控制器內容及存入資料表須行自編寫
    'CustomerURL' => 取號完成的網址,  // 例:http://www.example.com/customerRes 

    // 可選參數
    'ClientBackURL' => 返回商店按鈕的連結網址,  // 例:http://www.example.com/shop/123
]);

return view(你訂單頁面的 blade 模版, [
    'newebpay' => $newebpay,  // newebpay 這個 key 名不要改掉
    ... 頁面其他資料的變數,以下省略 ...
]);

註1:交易資料參數必填的欄位,只剩範例中 MerchantOrderNo、Amt、ItemDesc、Email 這四項需要指定  
註2:可選參數,像是返回商店按鈕的連結網址、限制信用卡分期的期數等等,依你專案需要額外去指定  
註3:各項交易資料的參數名稱,皆與官方文件相同

(2)前端呈現訂單資料的頁面中,把按鈕元件放在你想要的位置即可

@component('newebpay::tradeButton', [
    'newebpay' => $newebpay,
    'button' => '<button type="submit" class="button is-success">前往結帳</button>',
])
@endcomponent

註:按鈕的 HTML Tag,可以依你的喜好去更改,直接修改 button 的值即可

(3)取號完成轉址的 blade 模版名稱(不須副檔名 .blade.php),請直接設定在 .env 檔的「NEWEBPAY_CUSTOMER_BLADE」參數。從藍新傳來的資料都會在 $log 這個 Eloquent 實例中(它查詢了 newebpay_customers 資料表),你可以在自己的 blade 使用此物件。例如:

<li>取號狀態及錯誤代碼:{{ $log->Status }}</li>
<li>訂單編號:{{ $log->MerchantOrderNo }}</li>
<li>交易金額:{{ $log->Amt }}</li>
<li>藍新交易序號:{{ $log->TradeNo }}</li>
<li>商店代號:{{ $log->MerchantID }}</li>
<li>繳費截止日期:{{ $log->ExpireDate }}</li>
<li>支付方式:{{ $log->PaymentType }}</li>

(4)支付完成的記錄在 newebpay_notifies 資料表中,控制器中可以用 Eloquent 的方式讀取資料,例如:

use Datomon\LaravelNewebpay\Models\NewebpayNotify;

$notify = NewebpayNotify::all();

(5)取號完成的記錄在 newebpay_customers 資料表中,你控制器可以用 Eloquent 的方式讀取資料,例如:

use Datomon\LaravelNewebpay\Models\NewebpayCustomer;

$customer = NewebpayCustomer::all();

Test

(1)此套件有提供測試交易資料的表單,供你填部份欄位來擬模交易的流程,配合官方文件了解一些交易資料參數的用處
請修改 .env 檔中下列的參數:

(1)NEWEBPAY_ENV 的值設為 dev (要關閉此測試表單,把此值設為 prod 即可)
(2)NEWEBPAY_MERCHANT_ID、NEWEBPAY_HASH_KEY、NEWEBPAY_HASH_IV 要設為藍新測試站商店的資料
(3)APP_URL 的值要設定專案的域名
(4)NEWEBPAY_CUSTOMER_BLADE 的值要用測試的模版名 newebpay::testCustomerRes

之後瀏覽器連結:

你的網域/newebpay/test/tradeForm 
You can’t perform that action at this time.