fall1600/newebpay
Composer 安装命令:
composer require fall1600/newebpay
包简介
Payment solution of NewebPay(藍新金流), implementing by pure PHP
README 文档
README
程式版本 1.5
文件版本 1.0.4
Official Doc
feature
- 多功能收款 MPG
- 單筆交易狀態查詢
- 信用卡取消授權
- 信用卡請退款
- 信用卡定期定額
How to use
信用卡定期定額
建立交易資訊 (BasicInfo)
- $order: 你的訂單物件, 務必實作package 中的OrderInterface
- $contact: 你的付款人物件, 務必實作package 中的ContactInterface
- $periodStartType: 檢查卡號模式, 參閱文件p.13
- $version: 串接程式版本
- 帶入 1.0 版本,則[背面末三碼]將為必填欄位
- 帶入 1.1 版本,則[背面末三碼]將為非必填
$info = new \fall1600\Package\Newebpay\Info\Period\BasicInfo($order, $payer, $periodStartType, $version);
選填參數
$info = new ReturnUrl($info, 'https://your.return.url'); $info = new NotifyUrl($info, 'https://your.notify.url'); $info = new BackUrl($info, 'https://your.back.url'); $info = new Memo($info, 'your memo here');
建立NewebPay 物件, 注入商店資訊, 帶著交易資訊前往藍新申請定期定額
- $merchantId: 你在藍新商店代號
- $hashKey: 你在藍新商店專屬的HashKey
- $hashIv: 你在藍新商店專屬的HashIV
$newebpay = new NewebPay(); $newebpay ->setIsProduction(false) // 設定環境, 預設就是走正式機 ->setMerchant(new Merchant($merchantId, $hashKey, $hashIv)) ->issue($info);
請在你的訂單物件實作 OrderInterface
<?php namespace Your\Namespace; use fall1600\Package\Newebpay\Contracts\Period\OrderInterface; class Order implements OrderInterface { // your order detail... }
請在你的付款人(假設是Member), 實作ContactInterface
<?php namespace Your\Namespace; use fall1600\Package\Newebpay\Contracts\Period\ContactInterface; class Member implements ContactInterface { // your member detail... }
各種url 你分的清楚嗎?
| Name | 用途 | 設定的物件 | 備註 |
|---|---|---|---|
| ReturnURL | 首次信用卡授權完成後要回到你系統的位置 | ReturnUrl | 沒設定就是顯示在藍新 |
| NotifyURL | 每期授權結果通知 | NotifyUrl | 每期執行信用卡授權交易完成後, 以Post 方式通知商店授權結果; 若此欄位為空值,程式則將不通知 |
| BackURL | 取消交易時返回商店的網址 | BackUrl | 沒設定就是顯示在藍新 |
多功能收款
建立交易資訊 (BasicInfo)
- $merchantId: 你在藍新申請的商店代號
- $notifyUrl: 用來接收藍新付款通知的callback url
- $order: 你的訂單物件, 務必實作package 中的OrderInterface
- $payer: 你的付款人物件, 務必實作package 中的PayerInterface
$info = new BasicInfo($merchantId, $notifyUrl, $order, $payer);
依場景開啟各種付款方式, 有需要再啟用即可
// 啟用信用卡 $info = new EnableCredit($info); // 啟用3, 6, 12 期分期付款 $info = new PayInInstallments($info, '3,6,12'); // 啟用超商條碼 $info = new EnableBarcode($info); // 啟用Google Pay $info = new EnableGooglePay($info); // 啟用Web ATM $info = new EnableWebAtm($info); // 搭配非即時交易, 設定藍新通知付款資訊的callback url, 以及繳費期限 $info = new OfflinePay($info, $customerUrl, $ttl); // 在藍新交易完成後導回的網址 $info = new PayComplete($info, $returnUrl); // 設定讓消費者在付款頁按下返回時可以回導的頁面 $info = new PayCancel($info, $clientBackUrl); // 文件末有付款方式對應表
建立NewebPay 物件, 注入商店資訊, 帶著交易資訊前往藍新付款
- $merchantId: 你在藍新商店代號
- $hashKey: 你在藍新商店專屬的HashKey
- $hashIv: 你在藍新商店專屬的HashIV
$newebpay = new NewebPay(); $newebpay ->setIsProduction(false) // 設定環境, 預設就是走正式機 ->setMerchant(new Merchant($merchantId, $hashKey, $hashIv)) ->checkout($info);
請在你的訂單物件實作 OrderInterface
<?php namespace Your\Namespace; use fall1600\Package\Newebpay\Contracts\OrderInterface; class Order implements OrderInterface { // your order detail... }
請在你的付款人(假設是Member), 實作PayerInterface
<?php namespace Your\Namespace; use fall1600\Package\Newebpay\Contracts\PayerInterface; class Member implements PayerInterface { // your member detail... }
解開來自藍新的交易通知
$isValid = $merchant->setRawData($request->all())->validateResponse(); //確認為true 後再往下走 // response 封裝了通知交易的結果, 以下僅列常用methods $response = $merchant->getResponse(); // 付款成敗 $response->getStatus(); // 取得交易序號 $response->getTradeNo(); // 取得訂單編號, 就是OrderInterface 實作的getMerchantOrderNo $response->getMerchantOrderNo(); // 付款時間 $response->getPayTime();
支付寶 (AliPay)
支付寶付款需提供的參數更多
- $payer: 你的付款人物件, 務必實作package 中的AliPayPayerInterface
- $numberOfProducts: 此訂單的品項數量(integer)
- $product1: 第一個品項(實作AliPayProductInterface)
- $product2: 第二個品項(實作AliPayProductInterface)
$info = new AliPayBasicInfo($merchantId, $notifyUrl, $order, $payer, $numberOfProducts); $info = new EnableAliPay($info); $info = new AliPayProduct($info, 1, $product1); $info = new AliPayProduct($info, 2, $product2);
單筆交易查詢
$resp = $newebpay ->setMerchant($merchant) ->query($order);
各種url 你分的清楚嗎?
| Name | 用途 | 設定的物件 | 備註 |
|---|---|---|---|
| NotifyURL | 通知你系統交易資訊的callback url | BasicInfo | 通常用在訂單付款狀態切換, 最重要,所以BasicInfo 就要設定了 |
| CustomerURL | 離線付款取號完成通知你系統的callback url | OfflinePay | 用在紀錄離線付款的取號, 務必設定 |
| ReturnURL | 付款完成後要回到你系統的位置 | PayComplete | 沒設定就是顯示在藍新 |
| ClientBackURL | 交易取消時回到你系統的位置 | PayCancel | 沒設定就是顯示在藍新 |
付款方式對應的物件
| Class | 付款方式 | 交易性質 |
|---|---|---|
| EnableCredit | 信用卡(一次結清) | 即時交易 |
| EnableWebAtm | WebATM | 即時交易 |
| EnableVacc | ATM 轉帳 | 非即時交易 |
| EnableCvs | 超商代碼繳費 | 非即時交易 |
| EnableBarcode | 超商條碼繳費 | 非即時交易 |
| EnableCvsCom | 超商取貨付款 | 非即時交易 |
| EnableAliPay | 支付寶 | 非即時交易 |
| EnableEzPay | ezPay 電子錢包 | 即時交易, 非即時交易 |
| EnableLinePay | LINE Pay | 即時交易 |
fall1600/newebpay 适用场景与选型建议
fall1600/newebpay 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 11.28k 次下载、GitHub Stars 达 17, 最近一次更新时间为 2020 年 05 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「payment」 「newebpay」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 fall1600/newebpay 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 fall1600/newebpay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 fall1600/newebpay 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
台灣電子發票串接 PHP SDK,目前支援藍新(NewebPay/EZPay)發票與字軌管理
newebpay driver for the Omnipay payment processing library
NewebPay Logistics Integration PHP SDK. Supports various logistics methods including CVS pickup, home delivery, and more.
Payment solution of NewebPay(藍新金流), implementing by pure PHP
Payment solution of NewebPay(藍新金流), implementing by pure PHP
TrinkPOS Sanal POS (Virtual POS) API client for PHP
统计信息
- 总下载量: 11.28k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 20
- 点击次数: 15
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-05-06