PHPackages                             yoshocon/yoshocon-spgateway - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. yoshocon/yoshocon-spgateway

ActiveLibrary

yoshocon/yoshocon-spgateway
===========================

spgateway library for laravel

1.1.2(8y ago)052MITPHPPHP &gt;=7

Since Feb 7Pushed 8y agoCompare

[ Source](https://github.com/yoshocon/yoshocon-spgateway)[ Packagist](https://packagist.org/packages/yoshocon/yoshocon-spgateway)[ RSS](/packages/yoshocon-yoshocon-spgateway/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)Dependencies (1)Versions (16)Used By (0)

Laravel Spgateway
=================

[](#laravel-spgateway)

[![Latest Stable Version](https://camo.githubusercontent.com/99e284a1068531c5ff7f6efa339562a3ed251e6dc7c522cd964b63eacab3594b/68747470733a2f2f706f7365722e707567782e6f72672f796f73686f636f6e2f6c61726176656c2d7370676174657761792f762f737461626c65)](https://packagist.org/packages/yoshocon/laravel-spgateway)[![Total Downloads](https://camo.githubusercontent.com/85316ca9afa7d5a07f7bf7d976cd12a1d03277173287342b690d3406a9fdc1a7/68747470733a2f2f706f7365722e707567782e6f72672f796f73686f636f6e2f6c61726176656c2d7370676174657761792f646f776e6c6f616473)](https://packagist.org/packages/yoshocon/laravel-spgateway)[![Latest Unstable Version](https://camo.githubusercontent.com/0fc657368b8b6c30250037c5b7a5174ccbc67cd18f36bc758b3254569a48ec16/68747470733a2f2f706f7365722e707567782e6f72672f796f73686f636f6e2f6c61726176656c2d7370676174657761792f762f756e737461626c65)](https://packagist.org/packages/yoshocon/laravel-spgateway)[![License](https://camo.githubusercontent.com/8f46db56be41f9f2732883e3607d800f24349390f424a102c4511b7e1868bac8/68747470733a2f2f706f7365722e707567782e6f72672f796f73686f636f6e2f6c61726176656c2d7370676174657761792f6c6963656e7365)](https://packagist.org/packages/yoshocon/laravel-spgateway)

Laravel Spgateway是一個開源的 [智付通](https://www.spgateway.com/) 非官方套件

該套件參考於 [LeoChien](https://github.com/s950329/laravel-spgateway)

目錄
--

[](#目錄)

1. [環境要求](#%E8%A6%81%E6%B1%82)
2. [安裝](#%E5%AE%89%E8%A3%9D)
3. [配置](#%E9%85%8D%E7%BD%AE)
4. [使用](#%E4%BD%BF%E7%94%A8)
    1. [多功能收款MPG](#%E5%A4%9A%E5%8A%9F%E8%83%BD%E6%94%B6%E6%AC%BEMPG)
    2. [電子發票](#%E9%9B%BB%E5%AD%90%E7%99%BC%E7%A5%A8%E4%B8%B2%E6%8E%A5)
    3. [退款/取消授權](#%E9%80%80%E6%AC%BE/%E5%8F%96%E6%B6%88%E6%8E%88%E6%AC%8A)
    4. [平台費用扣款指示](#%E5%B9%B3%E5%8F%B0%E8%B2%BB%E7%94%A8%E6%89%A3%E6%AC%BE%E6%8C%87%E7%A4%BA)
5. [版本紀錄](#%E7%89%88%E6%9C%AC%E7%B4%80%E9%8C%84)
6. [License](#License)

要求
--

[](#要求)

1. PHP &gt;= 7
2. Laravel &gt;= 5
3. Composer

安裝
--

[](#安裝)

```
$ composer require Yoshocon/yoshocon-spgateway

```

配置
--

[](#配置)

### Laravel 應用

[](#laravel-應用)

1. 在 `config/app.php` 註冊 ServiceProvider 和 Facade (Laravel 5.5 無須手動註冊)

```
'providers' => [
    // ...
    Yoshocon\Spgateway\SpgatewayServiceProvider::class,
],
'aliases' => [
    // ...
    'MPG' => Yoshocon\Spgateway\Facades\MPG::class,
    'Receipt' => Yoshocon\Spgateway\Facades\Receipt::class,
    'Refund' => Yoshocon\Spgateway\Facades\Refund::class,
    'Transfer' => Yoshocon\Spgateway\Facades\Transfer::class,
],
```

2. 創建設定檔：

```
php artisan vendor:publish --provider="Yoshocon\Spgateway\SpgatewayServiceProvider"
```

3. 修改 `config/spgateway.php` 中對應的參數。
4. 在 `.env` 中加入下列設定

```
# 金流系統設定
SPGATEWAY_HASH_KEY=
SPGATEWAY_HASH_IV=

# 金流合作推廣商系統設定
SPGATEWAY_COMPANY_KEY=
SPGATEWAY_COMPANY_IV=
SPGATEWAY_PARTNER_ID=
SPGATEWAY_MERCHANT_ID_PREFIX=
SPGATEWAY_MERCHANT_ID=

# 發票系統設定
SPGATEWAY_RECEIPT_KEY=
SPGATEWAY_RECEIPT_IV=
SPGATEWAY_RECEIPT_MERCHANT_ID=

```

使用
--

[](#使用)

### 多功能收款MPG

[](#多功能收款mpg)

#### 快速上手

[](#快速上手)

建立訂單

```
// 產生智付通訂單資料
$order = MPG::generate(
    100,
    'leo@hourmasters.com',
    '測試商品'
);

// $order的 getPostData() 及 getPostDataEncrypted() 會回傳包含即將傳送到智付通的表單資料，可在此時紀錄log

// 前台送出表單到智付通
return $order->send();

```

解析智付通回傳訂單資料

```
$tradeInfo = MPG::parse(request()->TradeInfo);

```

查詢訂單

```
$order = MPG::search(
    '20180110151950mTHuUY'
    100
);

```

#### 可用方法

[](#可用方法)

> ### generate ($amount, $email, $itemDesc \[, $params \])
>
> [](#generate-amount-email-itemdesc--params-)

產生智付通建立訂單必要欄位

##### 參數

[](#參數)

1. `amount (Integer)`: 訂單金額
2. `email (String)`: 訂購人Email
3. `itemDesc (String)`: 商品描述
4. `[ params (Array) ]`: 其他可選參數，詳見下方參數表

##### 回傳

[](#回傳)

1. `(Class)`: MPG Class實體，其中getPostData() 及 getPostDataEncrypted()會回傳即將送到智付通的表單資料

##### 使用範例

[](#使用範例)

```
$order = MPG::generate(
    100,
    'leo@hourmasters.com',
    '測試商品'
);

```

##### 參數表

[](#參數表)

欄位型態可選值預設備註MerchantOrderNoVarchar(20)商店自訂編號，若無填寫則由套件產生LangTypeString`zh-tw` / `en``zh-tw`TradeLimitNumber60 ~ 900180ExpireDateString (Ymd)範例：20171231ReturnURLUrlNotifyURLUrlCustomerURLUrlClientBackURLUrlEmailModifyNumber`0` / `1`1LoginTypeNumber`0` / `1`0OrderCommentStringTokenTermString信用卡快速結帳CREDITNumber`0` / `1`信用卡一次付清CreditRedNumber`0` / `1`信用卡紅利InstFlagNumber`0` / `1`信用卡分期付款UNIONPAYNumber`0` / `1`銀聯卡WEBATMNumber`0` / `1`WebATMVACCNumber`0` / `1`ATM轉帳CVSNumber`0` / `1`超商代碼繳費BARCODENumber`0` / `1`條碼繳費，訂單金額需介於20～20000##### 備註

[](#備註)

- 支付方式若無選擇，默認開啟智付通後台設定方式
- 若無傳送訂單編號預設會建立年月日時分秒+6位隨機字串的訂單編號，e.g. 20180110151950mTHuUY

> ### send ()
>
> [](#send-)

前台送出智付通訂單建立表單

##### 使用範例

[](#使用範例-1)

```
$order->send();

```

> ### parse ($tradeInfo)
>
> [](#parse-tradeinfo)

解析智付通交易結果回傳參數，也適用於取號完成

##### 參數

[](#參數-1)

1. `tradeInfo (String)`: 智付通回傳，經AES加密之交易資料

##### 回傳

[](#回傳-1)

詳見[智付通文件](https://www.spgateway.com/WebSiteData/document/5.pdf)第六節：交易支付系統回傳參數說明 / 第七節：取號完成系統回傳參數說明

```
{
    "Status": "..."
    "Message": "..."
    "Result": {...}
}

```

##### 使用範例

[](#使用範例-2)

```
$tradeInfo = MPG::parse(request()->TradeInfo);

```

> ### search ($orderNo, $amount)
>
> [](#search-orderno-amount)

產生智付通查詢訂單必要欄位

##### 參數

[](#參數-2)

1. `orderNo (String)`: 訂單編號
2. `amount (Integer)`: 訂單金額

##### 回傳

[](#回傳-2)

詳見[智付通文件](https://www.spgateway.com/WebSiteData/document/4.pdf)第四章：交易查詢系統回應訊息

```
{
    "Status": "..."
    "Message": "..."
    "Result": {...}
}

```

##### 使用範例

[](#使用範例-3)

```
// 查詢智付通訂單
$order = MPG::search(
    '20180110151950mTHuUY'
    100
);

```

### 電子發票

[](#電子發票)

#### 快速上手

[](#快速上手-1)

開立發票

```
// 產生智付通開立發票資料
$receipt = Receipt::generate([
    'BuyerName'       => 'Leo',
    'TotalAmt'        => 10,
    'ItemName'        => [1],
    'ItemCount'       => [1],
    'ItemUnit'        => ['式'],
    'ItemPrice'       => [10],
]);

// $receipt的 getPostData() 及 getPostDataEncrypted 會回傳即將傳送到智付通的表單資料，可在此時紀錄log

// 送出開立發票申請，取得發票開立回傳結果
$res = $receipt->send();

```

觸發開立發票

```
// 產生智付通出發開立發票資料
$receipt = Receipt::generateTrigger('17122817285242624', '20171121WJNBX5NNBP', 100);

// $receipt的 getTriggerPostData() 及 getTriggerPostDataEncrypted() 會回傳即將傳送到智付通的表單資料，可在此時紀錄log

// 送出觸發開立發票申請，取得發票觸發開立回傳結果
$res = $receipt->send();

```

作廢發票

```
// 產生智付通作廢發票資料
$receipt = Receipt::generateInvalid('YF83646422', '作廢原因');

// $receipt的 getInvalidPostData() 及 getInvalidPostDataEncrypted() 會回傳即將傳送到智付通的表單資料，可在此時紀錄log

// 送出作廢發票申請，取得作廢發票回傳結果
$res = $receipt->sendInvalid();

```

查詢發票

```
// 查詢發票資料
$receipt = Receipt::search('20171121WJNBX5NNBP', 100);

```

#### 可用方法

[](#可用方法-1)

> ### generate ($params)
>
> [](#generate-params)

產生智付通開立電子發票必要欄位

##### 參數

[](#參數-3)

1. `params (Array)`: 詳見下方可選參數

##### 回傳

[](#回傳-3)

1. `(Class)`: Class實體，其中getPostData() 及 getPostDataEncrypted()包含即將送到智付通的表單資料

##### 使用範例

[](#使用範例-4)

```
$receipt = Receipt::generate([
    'BuyerName'       => 'Leo',
    'TotalAmt'        => 10,
    'ItemName'        => [1],
    'ItemCount'       => [1],
    'ItemUnit'        => ['式'],
    'ItemPrice'       => [10],
]);

```

##### 可選參數

[](#可選參數)

欄位必填型態可選值預設備註TransNumString智付寶平台交易序號MerchantOrderNoString商店自訂編號，若無填寫則由套件產生StatusNumber`0` / `1` / `3`1開立發票方式CreateStatusTimeString (Y-m-d)範例：2017-12-31CategoryString`B2B` / `B2C``B2C`BuyerName✔StringBuyerUBNStringBuyerAddressStringBuyerEmailEmailCarrierTypeString`0` / `1`1CarrierNumString`0` / `1`0LoveCodeNumberPrintFlagString`Y` / `N``Y`TaxTypeString`1` / `2` / `3` / `9``1`TaxRateNumber`5`CustomsClearanceNumber`1` / `2`AmtNumber若無填寫則由套件計算AmtSalesNumberAmtZeroNumberAmtFreeNumberTaxAmtNumber若無填寫則由套件計算TotalAmt✔NumberItemName✔ArrayItemCount✔ArrayItemUnit✔ArrayItemPrice✔ArrayItemTaxTypeArrayItemAmtArray若無填寫則由套件計算CommentString##### 備註

[](#備註-1)

- 本套件僅提供快速串接方式，詳細稅額計算方式請務必與公司財會人員進行確認

> ### send()
>
> [](#send)

傳送開立發票請求到智付通

##### 回傳

[](#回傳-4)

詳見[智付通文件](https://inv.pay2go.com/dw_files/info_api/pay2go_gateway_electronic_invoice_api_V1_1_7.pdf)第四節之二：開立發票系統回應訊息

```
{
    "Status": "..."
    "Message": "..."
    "Result": {...}
}

```

##### 使用範例

[](#使用範例-5)

```
$res = $receipt->send();

```

> ### generateTrigger ($invoiceTransNo, $orderNo, $amount)
>
> [](#generatetrigger-invoicetransno-orderno-amount)

產生智付通觸發開立電子發票必要資訊

##### 參數

[](#參數-4)

1. `invoiceTransNo (String)`: 智付寶開立序號
2. `orderNo (String)`: 商店自訂編號
3. `amount (Integer)`: 發票金額

##### 回傳

[](#回傳-5)

1. `(Class)`: Class實體，其中getTriggerPostData() 及 getTriggerPostDataEncrypted()會回傳即將送到智付通的表單資料

##### 使用範例

[](#使用範例-6)

```
$receipt = Receipt::generateTrigger('17122817285242624', '20171121WJNBX5NNBP', 100);

```

> ### sendTrigger()
>
> [](#sendtrigger)

送出觸發開立電子發票請求到智付通

##### 回傳

[](#回傳-6)

詳見[智付通文件](https://inv.pay2go.com/dw_files/info_api/pay2go_gateway_electronic_invoice_api_V1_1_7.pdf)第四節之四：觸發開立發票系統回應訊息

```
{
    "Status": "..."
    "Message": "..."
    "Result": {...}
}

```

##### 使用範例

[](#使用範例-7)

```
$res = $receipt->sendTrigger();

```

> ### generateInvalid ($receiptNumber, $invalidReason)
>
> [](#generateinvalid-receiptnumber-invalidreason)

產生智付通觸發開立電子發票必要資訊

##### 參數

[](#參數-5)

1. `receiptNumber (String)`: 發票號碼
2. `receiptNumber (String)`: 作廢原因

##### 回傳

[](#回傳-7)

1. `(Class)`: Class實體，其中getInvalidPostData() 及 getInvalidPostDataEncrypted()會回傳即將送到智付通的表單資料

##### 使用範例

[](#使用範例-8)

```
$receipt = Receipt::generateInvalid('17122817285242624', '作廢原因');

```

> ### sendInvalid()
>
> [](#sendinvalid)

送出觸發開立電子發票請求到智付通

##### 回傳

[](#回傳-8)

詳見[智付通文件](https://inv.pay2go.com/dw_files/info_api/pay2go_gateway_electronic_invoice_api_V1_1_7.pdf)第五節之二：作廢發票系統回應訊息

```
{
    "Status": "..."
    "Message": "..."
    "Result": {...}
}

```

##### 使用範例

[](#使用範例-9)

```
$res = $receipt->sendInvalid();

```

> ### search($orderNo, $amount)
>
> [](#searchorderno-amount)

查詢發票

##### 參數

[](#參數-6)

1. `orderNo (String)`: 商店自訂編號
2. `amount (Integer)`: 發票金額

##### 回傳

[](#回傳-9)

詳見[智付通文件](https://inv.pay2go.com/dw_files/info_api/pay2go_gateway_electronic_invoice_api_V1_1_7.pdf)第七節之二：查詢發票系統回應訊息

```
{
    "Status": "..."
    "Message": "..."
    "Result": {...}
}

```

##### 使用範例

[](#使用範例-10)

```
$res = $receipt->search('20171121WJNBX5NNBP', 100);

```

### 退款/取消授權

[](#退款取消授權)

因智付通信用卡退費有尚未請款需串接取消授權API，已請款需串接退款API之規則，本功能旨在整合此一過程，降低開發人員負擔 另外也提供非即時交易退款功能

#### 快速上手

[](#快速上手-2)

```
// 產生智付通退費 / 取消授權必要資訊
$refund = Refund::generate('20171121WJNBX5NNBP', 100);

// $refund的 postType為cacnel時，訂單準備取消授權；為refund時，訂單準備退款
// $refund的 getPostData() 及 getPostDataEncrypted() 會回傳即將傳送到智付通的表單資料，可在此時紀錄log

// 送出退款/取消授權申請，取得回傳結果
$res = $refund->send();

```

#### 可用方法

[](#可用方法-2)

> ### generate ($orderNo, $amount\[, $notifyUrl = null, $delayed = false, $params = \[\]\])
>
> [](#generate-orderno-amount-notifyurl--null-delayed--false-params--)

產生智付通退費 / 取消授權必要欄位

##### 參數

[](#參數-7)

1. `orderNo (String)`: 商店自訂編號
2. `amount (String)`: 訂單金額，若不想全額退款請於可選參數中傳送Amt欄位
3. `[ notifyUrl (String) ]`: 接受取消授權結果位址，於取消授權或非即時交易時才需填寫
4. `[ delayed (Boolean) ]`: 是否為非即時交易
5. `[ params (Array) ]`: 詳見下方參數表

##### 回傳

[](#回傳-10)

1. `(Class)`: Class實體，其中getPostData() 及 getPostDataEncrypted()包含即將送到智付通的表單資料；getPostType()為cacnel時，訂單準備取消授權，為refund時，訂單準備退款

##### 使用範例

[](#使用範例-11)

```
$refund = Refund::generate('20171121WJNBX5NNBP', 100);

```

##### 可選參數

[](#可選參數-1)

1. 即時交易

欄位必填型態備註RefundAmtNumber請退款金額，若發動退費後不退全額則需傳送此參數2. 非即時交易

欄位必填型態備註AccNo✔String退款金額轉入之帳號BankNo✔String金融機構總行代號SubBankCode✔String金融機構分行代號AccName✔String帳戶使用名稱RefundAmt✔Number退款金額，必須小於等於訂單金額Id+String買方身分證字號，Id及UBN需擇一填寫UBN+String買方統一編號，Id及UBN需擇一填寫> ### send()
>
> [](#send-1)

傳送退費 / 取消授權請求到智付通

##### 回傳

[](#回傳-11)

取消授權：詳見[智付通文件](https://www.spgateway.com/WebSiteData/document/gateway_creditcard_deauthorize_api_V1_0_0.pdf)第五節：取消授權完成後系統回應訊息

退款：詳見[智付通文件](https://www.spgateway.com/WebSiteData/document/2.pdf)第五節：系統回應訊息

```
{
    "Status": "..."
    "Message": "..."
    "Result": {...}
}

```

##### 使用範例

[](#使用範例-12)

```
$res = $refund->send();

```

### 平台費用扣款指示

[](#平台費用扣款指示)

#### 快速上手

[](#快速上手-3)

```
// 產生平台費用扣款指示必要資訊
$transfer = Transfer::generate('20171121WJNBX5NNBP', 100, 0, 0);

// $transfer的 getPostData() 及 getPostDataEncrypted() 會回傳即將傳送到智付通的表單資料，可在此時紀錄log

// 送出扣款指示申請，取得扣款指示回傳結果
$res = $transfer->send();

```

#### 可用方法

[](#可用方法-3)

> ### generate ($merchantID, $amount, $feeType, $balanceType)
>
> [](#generate-merchantid-amount-feetype-balancetype)

產生智付通扣款指示必要欄位

##### 參數

[](#參數-8)

1. `orderNo (String)`: 商店自訂編號
2. `amount (String)`: 金額
3. `feeType (Integer)`: 費用類別
4. `balanceType (Integer)`: 交易正負值

##### 回傳

[](#回傳-12)

1. `(Class)`: Class實體，其中getPostData() 及 getPostDataEncrypted()包含即將送到智付通的表單資料

##### 使用範例

[](#使用範例-13)

```
$transfer = Transfer::generate('20171121WJNBX5NNBP', 100);

```

> ### send()
>
> [](#send-2)

傳送扣款指示請求到智付通

##### 回傳

[](#回傳-13)

本文件未公開，請向合作之智付通業務人員索取

```
{
    "Status": "..."
    "Message": "..."
    "Result": {...}
}

```

##### 使用範例

[](#使用範例-14)

```
$res = $transfer->send();

```

版本紀錄
----

[](#版本紀錄)

### 1.1.0

[](#110)

1. 非信用卡退款
2. MPG交易串接增加支付寶欄位（測試功能）

### 1.0.0

[](#100)

1. MPG交易串接 / 查詢
2. 電子發票
3. 退款 / 取消授權
4. 平台扣款指示

License
-------

[](#license)

Laravel Spgateway is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT)

###  Health Score

30

—

LowBetter than 65% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Recently: every ~9 days

Total

15

Last Release

2978d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9f34e5fac1e87c229d1895ba3e3fbc785d127ce422b9cf5d91e0d83994ab2c3f?d=identicon)[yoshocon](/maintainers/yoshocon)

---

Top Contributors

[![yoshocon](https://avatars.githubusercontent.com/u/22796488?v=4)](https://github.com/yoshocon "yoshocon (20 commits)")

---

Tags

spgateway

### Embed Badge

![Health badge](/badges/yoshocon-yoshocon-spgateway/health.svg)

```
[![Health](https://phpackages.com/badges/yoshocon-yoshocon-spgateway/health.svg)](https://phpackages.com/packages/yoshocon-yoshocon-spgateway)
```

###  Alternatives

[neuron-core/neuron-ai

The PHP Agentic Framework.

1.8k245.3k20](/packages/neuron-core-neuron-ai)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[leochien/laravel-spgateway

spgateway library for laravel

3611.1k](/packages/leochien-laravel-spgateway)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
