PHPackages                             zjpay/laravel-cpcn - 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. [Payment Processing](/categories/payments)
4. /
5. zjpay/laravel-cpcn

ActiveLibrary[Payment Processing](/categories/payments)

zjpay/laravel-cpcn
==================

Laravel package for CPCN (中金支付 壹企付) message gateway APIs.

1.0.0(1mo ago)01MITPHPPHP ^8.0CI passing

Since Apr 16Pushed 1mo agoCompare

[ Source](https://github.com/ethanfly/laravel-payment-zj)[ Packagist](https://packagist.org/packages/zjpay/laravel-cpcn)[ RSS](/packages/zjpay-laravel-cpcn/feed)WikiDiscussions main Synced 1w ago

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

laravel-cpcn
============

[](#laravel-cpcn)

基于《中金支付 报文交换技术规范 第2部分 壹企付 V2.3.4》实现的 Laravel Composer 包。
支持：

- `TxCode` 通用调用（覆盖全部接口）
- 自动路由到测试/生产、普通网关/文件网关/聚合网关
- `message + signature` 协议封装
- 请求签名、响应验签（RSA）
- 异步通知验签与解析

1. 安装
-----

[](#1-安装)

```
composer require zjpay/laravel-cpcn
```

发布配置：

```
php artisan vendor:publish --tag=cpcn-config
```

2. 配置
-----

[](#2-配置)

在 `.env` 中设置：

```
CPCN_MODE=test
CPCN_INSTITUTION_ID=123456

CPCN_MERCHANT_PRIVATE_KEY_PATH=/path/to/merchant_private.pem
CPCN_PLATFORM_PUBLIC_KEY_PATH=/path/to/cpcn_platform_public.pem

# 可选：协议细节差异（按你们联调环境调）
CPCN_REQUEST_MESSAGE_ENCODING=plain
CPCN_RESPONSE_MESSAGE_ENCODING=auto
CPCN_SIGNATURE_PAYLOAD=message
CPCN_VERIFY_RESPONSE_SIGNATURE=true
```

3. 通用调用（推荐）
-----------

[](#3-通用调用推荐)

```
use Zjpay\Cpcn\Facades\Cpcn;

$resp = Cpcn::tx('5011', [
    'PaymentNo' => 'P202604160001',
    'Amount' => '100',
    'SettlementFlag' => '10',
    // ...按文档拼 Body 字段
]);

if (! $resp->isSystemAccepted()) {
    throw new RuntimeException($resp->systemCode() . ':' . $resp->systemMessage());
}

$body = $resp->body();
```

4. 常用便捷方法
---------

[](#4-常用便捷方法)

```
Cpcn::openAccount([...]);      // 4601
Cpcn::bindCard([...]);         // 4611
Cpcn::bindCardConfirm([...]);  // 4613
Cpcn::queryBindOrOpen([...]);  // 4616
Cpcn::recharge([...]);         // 4641
Cpcn::withdraw([...]);         // 4643
Cpcn::transfer([...]);         // 4645
Cpcn::pay([...]);              // 5011
Cpcn::payPage([...]);          // 5012
Cpcn::refund([...]);           // 5021
```

5. 异步通知验签
---------

[](#5-异步通知验签)

```
use Illuminate\Http\Request;
use Zjpay\Cpcn\Facades\Cpcn;

Route::post('/cpcn/notify', function (Request $request) {
    $message = (string) $request->input('message');
    $signature = (string) $request->input('signature');

    $parsed = Cpcn::parseAndVerifyCallback($message, $signature);
    // TODO: 业务处理
    return response('OK');
});
```

6. 网关路由策略（默认）
-------------

[](#6-网关路由策略默认)

- 文件网关：`4600`, `4698`
- 聚合网关：`5012`
- 其余 `TxCode`：普通网关

可在 `config/cpcn.php` 的 `routing` 中调整或新增。

7. 注意事项
-------

[](#7-注意事项)

- 文档附录明确要求提交 `message`、`signature` 参数；缺失可能返回 `240001`。
- 返回 `2000` 仅代表系统受理成功，最终业务结果请看 `Body.ResponseCode/Status` 等业务字段。
- `TxSN` 默认自动生成（17位时间戳前缀 + 随机串，总长 32）。

8. 自动发版与 Packagist 同步
---------------------

[](#8-自动发版与-packagist-同步)

仓库已内置：

- `.github/workflows/release.yml`：`push main` 时按 Conventional Commits 自动语义化发版（GitHub Release + tag）
- `.github/workflows/packagist-sync.yml`：`push main/tag` 时主动通知 Packagist 更新

请在 GitHub 仓库 `Settings -> Secrets and variables -> Actions` 添加：

- `PACKAGIST_USERNAME`：你的 Packagist 用户名
- `PACKAGIST_TOKEN`：你的 Packagist API Token

建议提交信息遵循 Conventional Commits（决定版本号）：

- `fix:` =&gt; patch
- `feat:` =&gt; minor
- `feat!:` 或包含 `BREAKING CHANGE:` =&gt; major

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance89

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 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

Unknown

Total

1

Last Release

54d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/811769cc774ffb95ae87505d801c501065d7bd9d2de797668ad1c202da411439?d=identicon)[ethanfly](/maintainers/ethanfly)

---

Top Contributors

[![ethanflynoah](https://avatars.githubusercontent.com/u/190800793?v=4)](https://github.com/ethanflynoah "ethanflynoah (2 commits)")

---

Tags

laravelpaymentcpcnyqf

### Embed Badge

![Health badge](/badges/zjpay-laravel-cpcn/health.svg)

```
[![Health](https://phpackages.com/badges/zjpay-laravel-cpcn/health.svg)](https://phpackages.com/packages/zjpay-laravel-cpcn)
```

###  Alternatives

[sebdesign/laravel-viva-payments

A Laravel package for integrating the Viva Payments gateway

4849.3k](/packages/sebdesign-laravel-viva-payments)[henryejemuta/laravel-monnify

A laravel package to seamlessly integrate monnify api within your laravel application

132.1k](/packages/henryejemuta-laravel-monnify)

PHPackages © 2026

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