定制 fall1600/ecpay 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

fall1600/ecpay

Composer 安装命令:

composer require fall1600/ecpay

包简介

Payment solution of ECPay(綠界科技), implementing by pure PHP

关键字:

README 文档

README

Official Doc

How to use

建立交易資訊 (BasicInfo)

  • $merchantId: 你在綠界申請的商店代號
  • $returnUrl: 用來接收綠界付款通知的callback url
  • $order: 你的訂單物件, 務必實作package 中的OrderInterface
  • $paymentType: 預設交易方式全部開啟
$info = new BasicInfo($merchantId, $returnUrl, $order, $paymentType = 'ALL');

控制交易方式

// 反向的設定概念, 依需求關閉付款方式(可參考PaymentType 付款方式)
$info = new IgnorePayment($info, 'ATM', 'BARCODE');
// 信用卡設定, quickCredit 可開啟記憶信用卡(需實作QuickCreditInterface), 以及設定紅利折抵 
$info = new Credit($info, $quickCredit, true);
// 信用卡分期付款設定
$info = new PayInInstallments($info, '3,6,12,18,24');
// 虛擬ATM 繳費設定, 接收取號的webhook url, 要號完成的回導位置, 繳費期限(天), 預設3天
$info = new Atm($info, $paymentInfoUrl, $clientRedirectUrl, 10);
// 超商繳費設定, 繳費期限(分鐘), 預設10080分鐘=7天
$info = new Cvs($info, $paymentInfoUrl, $clientRedirectUrl, 30);
// 超商條碼繳費設定, 繳費期限(天), 預設7天
$info = new Barcode($info, $paymentInfoUrl, $clientRedirectUrl, 3);
// 是否需要額外的付款資訊
$info = new ExtraInfo($info);
// 特店子商城id
$info = new SubMerchant($info, $subMerchantId);

建立Ecpay 物件, 注入商店資訊, 帶著交易資訊前往綠界付款

  • $merchantId: 你在綠界商店代號
  • $hashKey: 你在綠界商店專屬的HashKey
  • $hashIv: 你在綠界商店專屬的HashIV
$ecpay = new Ecpay();
$ecpay
    ->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...
}

解開來自綠界的交易通知

$isValid = $merchant->setRawData($request->all())->validateResponse(); //確認為true 後再往下走

// response 封裝了通知交易的結果, 以下僅列常用methods
$response = $merchant->getResponse();
// 付款成敗
$response->getReturnCode();
// 取得交易序號
$response->getTradeNo();
// 取得訂單編號, 就是OrderInterface 實作的getMerchantOrderNo
$response->getMerchantOrderNo();
// 付款時間
$response->getPaymentDate();
// 整包payload
$response->getData();

單筆交易查詢

$resp = $ecpay
    ->setMerchant($merchant)
    ->query($order, $platformId = null);

$isValid = $merchant->setRawData($resp)->validResponse(); // 查詢的response, 有需要也可以validate

各種url 你分的清楚嗎?

Name 用途 設定的物件 備註
ReturnURL 通知你系統交易資訊的callback url BasicInfo 通常用在訂單付款狀態切換, 最重要,所以BasicInfo 就要設定了, 此webhook 檢查完checksum 後要return 1|OK (半形的|) 給綠界
OrderResultURL 付款完成回到你系統的位置 PayComplete 沒設定就是顯示在綠界
PaymentInfoURL 離線付款取號完成通知你系統的callback url Atm, Barcode, Cvs 用在紀錄離線付款的取號, 務必設定, 此webhook 檢查完checksum 後要return 1|OK (半形的|) 給綠界
ClientRedirectURL 離線付款取號完成要回到你系統的位置 Atm, Barcode, Cvs 沒設定就是顯示在綠界
ClientBackURL 任何時候在綠界想返回你系統的位置 ClientBack 沒設定在綠界就不會顯示[返回商店]
PeriodReturnURL 定期定額授權結果回傳通知你系統的 callback url PayInPeriods 用在定期定額的執行結果, 務必設定

fall1600/ecpay 适用场景与选型建议

fall1600/ecpay 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 6.87k 次下载、GitHub Stars 达 19, 最近一次更新时间为 2020 年 05 月 13 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「payment」 「ecpay」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 fall1600/ecpay 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 fall1600/ecpay 我们能提供哪些服务?
定制开发 / 二次开发

基于 fall1600/ecpay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 6.87k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 19
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 19
  • Watchers: 1
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-05-13