PHPackages                             xin/payment - 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. xin/payment

ActiveLibrary[Payment Processing](/categories/payments)

xin/payment
===========

统一化微信支付、支付宝支付API，让支付集成更简单！

v3.1.0(4mo ago)028Apache-2.0PHPPHP &gt;=7.1.9

Since May 8Pushed 4mo agoCompare

[ Source](https://github.com/liuxiaojinla/php-payment)[ Packagist](https://packagist.org/packages/xin/payment)[ RSS](/packages/xin-payment/feed)WikiDiscussions v3.x Synced 3d ago

READMEChangelogDependencies (3)Versions (5)Used By (0)

Payment | 统一化支付
===============

[](#payment--统一化支付)

介绍
--

[](#介绍)

你还在为微信支付或支付宝支付编写两套不同逻辑的代码而头疼吗？你还在为庞杂的参数记忆而苦恼吗？

> 让我们回归本源，重新定义统一支付器。

安装教程
----

[](#安装教程)

`composer require xin/payment`

概述
--

[](#概述)

这是一个基于 `yansongda/pay` 库的支付 SDK，提供了统一的接口来处理微信支付、支付宝、银联支付和抖音支付。SDK 支持 Laravel 和 ThinkPHP 框架。

核心组件
----

[](#核心组件)

### PaymentManager 类

[](#paymentmanager-类)

`PaymentManager` 是主要的支付管理类，实现了 `PaymentFactory` 接口：

- **作用**: 统一管理所有支付方式的实例化和配置
- **继承**: 使用了四个 trait (`HasWechat`, `HasAlipay`, `HasUnipay`, `HasDouyin`)
- **依赖**: `WithConfig` trait 提供配置管理功能

### Factory 接口

[](#factory-接口)

定义了支付方式的统一接口：

- `wechat($name = null, array $options = [])` - 微信支付
- `alipay($name = null, array $options = [])` - 支付宝支付
- `unipay($name = null, array $options = [])` - 银联支付
- `douyin($name = null, array $options = [])` - 抖音支付
- 对应的 `hasWechat()`, `hasAlipay()`, `hasUnipay()`, `hasDouyin()` 方法用于检查配置

### PaymentType 常量类

[](#paymenttype-常量类)

定义了支付类型的常量：

- `WECHAT` - 微信支付
- `ALIPAY` - 支付宝支付
- `UNIPAY` - 银联支付
- `DOUYIN` - 抖音支付

支付方式实现
------

[](#支付方式实现)

### 微信支付 (HasWechat Trait)

[](#微信支付-haswechat-trait)

- **默认配置名**: 从 `defaults.wechat` 获取，默认为 'default'
- **配置路径**: `wechat.{name}`
- **特殊处理**:
    - 自动处理 `appid` 到 `app_id` 和 `miniapp_id` 的映射
    - 支持证书内容自动写入临时文件

### 支付宝 (HasAlipay Trait)

[](#支付宝-hasalipay-trait)

- **默认配置名**: 从 `defaults.alipay` 获取，默认为 'default'
- **配置路径**: `alipay.{name}`

### 银联支付 (HasUnipay Trait)

[](#银联支付-hasunipay-trait)

- **默认配置名**: 从 `defaults.unipay` 获取，默认为 'default'
- **配置路径**: `unipay.{name}`

### 抖音支付 (HasDouyin Trait)

[](#抖音支付-hasdouyin-trait)

- **默认配置名**: 从 `defaults.douyin` 获取，默认为 'default'
- **配置路径**: `douyin.{name}`

异常处理
----

[](#异常处理)

### PaymentNotConfigureException

[](#paymentnotconfigureexception)

- 当支付配置未定义时抛出
- 继承自 `LogicException`

### PaymentInvalidConfigException

[](#paymentinvalidconfigexception)

- 当支付配置无效时抛出
- 继承自 `LogicException`

框架集成
----

[](#框架集成)

### Laravel 集成

[](#laravel-集成)

- **服务提供者**: `Laravel\PaymentServiceProvider`
- **服务别名**:
    - `payment` - 主要服务
    - `payment.wechat`, `payment.alipay`, `payment.unipay`, `payment.douyin` - 各支付方式的快捷访问

### ThinkPHP 集成

[](#thinkphp-集成)

- **服务类**: `ThinkPHP\PaymentServiceProvider`
- **绑定关系**: 将 `PaymentFactory` 和 `PaymentManager` 绑定到容器
- **服务别名**: 同 Laravel

配置结构
----

[](#配置结构)

```
// 配置示例
[
    'defaults' => [
        'wechat' => 'default',
        'alipay' => 'default',
        'unipay' => 'default',
        'douyin' => 'default'
    ],
    'wechat' => [
        'default' => [
            // 微信支付配置
        ]
    ],
    'alipay' => [
        'default' => [
            // 支付宝配置
        ]
    ],
    'unipay' => [
        'default' => [
            // 银联支付配置
        ]
    ],
    'douyin' => [
        'default' => [
            // 抖音支付配置
        ]
    ],
    'logger' => [
        // 日志配置
    ],
    'http' => [
        // HTTP 配置
    ]
]
```

使用方法
----

[](#使用方法)

### 基本使用

[](#基本使用)

```
// 获取支付实例
$wechat = $payment->wechat('default');
$alipay = $payment->alipay('default');
$unipay = $payment->unipay('default');
$douyin = $payment->douyin('default');

// 检查是否配置了支付方式
if ($payment->hasWechat('default')) {
    // 微信支付已配置
}
```

### 多配置支持

[](#多配置支持)

```
// 使用不同配置名称
$wechat1 = $payment->wechat('shop1');
$wechat2 = $payment->wechat('shop2');
```

### 选项参数

[](#选项参数)

```
// 传递额外选项
$wechat = $payment->wechat('default', [
    'cert' => true  // 启用证书功能
]);
```

特殊功能
----

[](#特殊功能)

### 配置初始化

[](#配置初始化)

- 所有支付方式都支持通用配置初始化 (`initApplicationConfig`)
- 自动合并日志和 HTTP 配置

### 证书处理

[](#证书处理)

- 微信支付支持证书内容自动写入临时文件
- 通过 `cert_client_content` 和 `cert_key_content` 配置项

### 配置验证

[](#配置验证)

- 每种支付方式都有相应的 `has` 方法验证配置完整性
- 微信支付特别检查 `mch_id` 和 `key` 是否存在

目录结构
----

[](#目录结构)

```
src/
├── Contracts/          # 接口定义
├── Exceptions/         # 异常类
├── Laravel/            # Laravel 集成
├── ThinkPHP/           # ThinkPHP 集成
├── HasAlipay.php       # 支付宝实现
├── HasDouyin.php       # 抖音支付实现
├── HasUnipay.php       # 银联支付实现
├── HasWechat.php       # 微信支付实现
├── PaymentManager.php  # 支付管理器
└── PaymentType.php     # 支付类型常量

```

这个 SDK 提供了一个统一、灵活且易于扩展的支付接口，支持主流的支付方式并集成了常用的 PHP 框架。

更多文档请参考【[easypay文档](https://pay.yansongda.cn/docs/v2/)】

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance74

Regular maintenance activity

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 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 ~332 days

Total

5

Last Release

139d ago

Major Versions

v1.0.0 → v3.0.02024-12-06

### Community

Maintainers

![](https://www.gravatar.com/avatar/3197fcaedd3c78adfa6afadac36bef7a2a39ce0df8e53d0da1e839e238287ad0?d=identicon)[xin](/maintainers/xin)

---

Top Contributors

[![liuxiaojinla](https://avatars.githubusercontent.com/u/16009864?v=4)](https://github.com/liuxiaojinla "liuxiaojinla (29 commits)")

---

Tags

alipaylaravel10paymentthinkphp8wei-xin

### Embed Badge

![Health badge](/badges/xin-payment/health.svg)

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

###  Alternatives

[yansongda/laravel-pay

专注 Alipay/WeChat/Unipay 的 laravel 支付扩展包

1.1k353.2k9](/packages/yansongda-laravel-pay)[omnipay/paypal

PayPal gateway for Omnipay payment processing library

3156.8M53](/packages/omnipay-paypal)[tbbc/money-bundle

This is a Symfony bundle that integrates moneyphp/money library (Fowler pattern): https://github.com/moneyphp/money.

1961.9M](/packages/tbbc-money-bundle)[2checkout/2checkout-php

2Checkout PHP Library

83740.3k2](/packages/2checkout-2checkout-php)[yansongda/hyperf-pay

可能是基于 hyperf 的最优雅的支付宝、微信、银联支付 SDK 了

8959.8k1](/packages/yansongda-hyperf-pay)[smhg/sepa-qr-data

Generate QR code data for SEPA payments

61717.2k5](/packages/smhg-sepa-qr-data)

PHPackages © 2026

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