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

ActiveLibrary[Payment Processing](/categories/payments)

payment-integration/payment-integration
=======================================

a payment integration package

57PHP

Since Jan 14Pushed 6y ago1 watchersCompare

[ Source](https://github.com/longxiaoxia007/payment-integration)[ Packagist](https://packagist.org/packages/payment-integration/payment-integration)[ RSS](/packages/payment-integration-payment-integration/feed)WikiDiscussions master Synced 5d ago

READMEChangelogDependenciesVersions (1)Used By (0)

payment-integration
===================

[](#payment-integration)

支付集成包

安装
==

[](#安装)

```
composer require payment-integration/payment-integration
composer require "payment-integration/payment-integration @dev"
```

使用教程
====

[](#使用教程)

简介
--

[](#简介)

#### 1.目前微信支持的支付有公众号支付，H5支付， 扫码支付，小程序支付和App支付五种支付方式，支付宝支付将在后续版本中添加；

[](#1目前微信支持的支付有公众号支付h5支付-扫码支付小程序支付和app支付五种支付方式支付宝支付将在后续版本中添加)

#### 2.同时支持普通商户模式和服务商模式，common文件下为普通商户模式相应的支付类， service文件夹下为服务商模式相应的支付类;

[](#2同时支持普通商户模式和服务商模式common文件下为普通商户模式相应的支付类-service文件夹下为服务商模式相应的支付类)

#### 3.不同的支付实例化对应的支付类，何种支付一目了然，不需要设定过多参数，避免犯错误；

[](#3不同的支付实例化对应的支付类何种支付一目了然不需要设定过多参数避免犯错误)

#### 4.所有支付的过程为：1.实例化支付类；2.按照微信官方的要求进行参数设定；3.支付则调用类中的doPay方法，查询订单调用doOrderQuery，退款调用doRefund，退款查询用doRefundQuery；

[](#4所有支付的过程为1实例化支付类2按照微信官方的要求进行参数设定3支付则调用类中的dopay方法查询订单调用doorderquery退款调用dorefund退款查询用dorefundquery)

#### 5.所有支付参数中的sign\_type（默认MD5）,trade\_type,nonce\_str不需要传递，内部已经自动处理，必传参数内部会进行验证;

[](#5所有支付参数中的sign_type默认md5trade_typenonce_str不需要传递内部已经自动处理必传参数内部会进行验证)

#### 6.为便于调试，内置了基于monolog的日志记录，日志默认为关闭，需要先用setLogPath方法设置日志路径(务必保证目录有写入权限)，然后用openLogSwitch方法打开日志，具体请根据需求自定义设置；

[](#6为便于调试内置了基于monolog的日志记录日志默认为关闭需要先用setlogpath方法设置日志路径务必保证目录有写入权限然后用openlogswitch方法打开日志具体请根据需求自定义设置)

#### 7.所有错误均以异常的形式抛出，请在实际逻辑中自行处理异常;

[](#7所有错误均以异常的形式抛出请在实际逻辑中自行处理异常)

#### 8.使用过程中发现问题，欢迎批评指正，QQ：421718630。

[](#8使用过程中发现问题欢迎批评指正qq421718630)

代码示例
----

[](#代码示例)

#### 微信公众号支付

[](#微信公众号支付)

#### 统一下单

[](#统一下单)

##### 实例化支付类

[](#实例化支付类)

```
$PayObject = new WechatJsApiPay();//公众号支付
//            $PayObject = new WechatAppPay();//app支付
//            $PayObject = new WechatH5Pay();//H5支付
//            $PayObject = new WechatMiniPay();//小程序支付
//            $PayObject = new WechatNativePay();//扫码支付
```

##### 以下设置支付参数（以公众号支付的必选参数为例，其他支付参阅官方文档）

[](#以下设置支付参数以公众号支付的必选参数为例其他支付参阅官方文档)

```
$PayObject->setLogPath('path/log.txt');//通过此参数设置日志记录路径
$PayObject->openLogSwitch();//此参数可打开日志记录，默认为关闭状态
$PayObject->setParam('appid', 'wx2421b1c4370ec43b');
$PayObject->setParam('mch_id', '10000100');
$PayObject->setParam('openid', 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o');
$PayObject->setParam('out_trade_no', '1415659990');
$PayObject->setParam('spbill_create_ip', '14.23.150.211');
$PayObject->setParam('total_fee', 1);
$PayObject->setParam('notify_url', 'http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php');
$PayObject->setParam('body', 'JSAPI支付测试');

$PayObject->setKey('sfsfsddfgs2343453534gdfgdfsgdfg');
//非前后端分离的直接支付需要设定支付后同步跳转地址
$PayObject->setReturnUrl('www.baidu.com');
```

##### 调用支付函数，默认为true，参数true代表为前后端分离的方式，false代表微信公众号内直接发起支付，true返回需要的支付参数，false会直接发起支付

[](#调用支付函数默认为true参数true代表为前后端分离的方式false代表微信公众号内直接发起支付true返回需要的支付参数false会直接发起支付)

##### 除需要直接发起的公众号支付需要传递false以外，其他支付方式使用默认值true即可

[](#除需要直接发起的公众号支付需要传递false以外其他支付方式使用默认值true即可)

```
$return_data = $PayObject->doPay(true);
//返回参数示例
//1.公众号支付
$return_data = [
    'appId' => 'wx2421b1c4370ec43b',
    'timeStamp' => '20091227091010',
    'nonceStr' => '5K8264ILTKCH16CQ2502SI8ZNMTM67VS',
    'package' => 'prepay_id=123',
    'signType' => 'MD5',
    'paySign' => '0CB01533B8C1EF103065174F50BCA001',
];
//2.app支付
$return_data = [
    'appId' => 'wx2421b1c4370ec43b',
    'partnerid' => '10000100',
    'timeStamp' => '20091227091010',
    'nonceStr' => '5K8264ILTKCH16CQ2502SI8ZNMTM67VS',
    'package' => 'Sign=WXPay',
    'prepayid' => 1222,
    'paySign' => '0CB01533B8C1EF103065174F50BCA001',
];
//3.H5支付
$return_data = [
    'mweb_url' => 'https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx2016121516420242444321ca0631331346&package=1405458241'
];
//4.小程序支付
$return_data = [
    'appId' => 'wx2421b1c4370ec43b',
    'timeStamp' => '20091227091010',
    'nonceStr' => '5K8264ILTKCH16CQ2502SI8ZNMTM67VS',
    'package' => 'prepay_id=123',
    'signType' => 'MD5',
    'paySign' => '0CB01533B8C1EF103065174F50BCA001',
];
//5.扫码支付
$return_data = [
    'short_url' => 'weixin：//wxpay/s/XXXXXX'
];
```

##### \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/

[](#)

##### 支付异步回调数据处理

[](#支付异步回调数据处理)

##### 实例化公众号支付类

[](#实例化公众号支付类)

```
$PayObject = new WechatJsApiPay();
```

##### 该包内封装了 自动接收异步参数并进行处理验证, 调用函数前必须首先设定key

[](#该包内封装了-自动接收异步参数并进行处理验证-调用函数前必须首先设定key)

```
$PayObject->setKey('sfsfsddfgs2343453534gdfgdfsgdfg');
```

##### 返回官方原样参数

[](#返回官方原样参数)

```
$return_data = $PayObject->payCallBack();
//逻辑处理完成后请务必调用retResult方法返回结果给微信
$PayObject->retResult();
```

#### 查询订单部分

[](#查询订单部分)

##### 实例化公众号支付类

[](#实例化公众号支付类-1)

```
$PayObject = new WechatJsApiPay();
```

##### 以下设置支付参数（只设置了必选参数，其他参数根据需要按照官方文档要求设置即可）

[](#以下设置支付参数只设置了必选参数其他参数根据需要按照官方文档要求设置即可)

```
$PayObject->setParam('appid', 'wx2421b1c4370ec43b');
$PayObject->setParam('mch_id', '10000100');
$PayObject->setParam('transaction_id', '1008450740201411110005820873');

$PayObject->setKey('sfsfsddfgs2343453534gdfgdfsgdfg');
```

##### 调用查询订单函数,参数按照微信官方文档返回

[](#调用查询订单函数参数按照微信官方文档返回)

```
$return_data = $PayObject->doOrderQuery();
```

#### 申请退款部分

[](#申请退款部分)

##### 实例化公众号支付类

[](#实例化公众号支付类-2)

```
$PayObject = new WechatJsApiPay();
```

##### 设置退款参数

[](#设置退款参数)

```
$PayObject->setParam('appid', 'wx2421b1c4370ec43b');
$PayObject->setParam('mch_id', '10000100');
$PayObject->setParam('out_refund_no', '1415701182');
$PayObject->setParam('out_trade_no', '1415757673');
$PayObject->setParam('refund_fee', 1);
$PayObject->setParam('total_fee', 1);
$PayObject->setParam('transaction_id', '4006252001201705123297353072');

$PayObject->setKey('sfsfsddfgs2343453534gdfgdfsgdfg');
$PayObject->setRefundCertPath('data/cert/key_path');
$PayObject->setRefundKyePath('data/cert/key_path');
```

##### 调用申请退款函数,参数按照微信官方文档返回

[](#调用申请退款函数参数按照微信官方文档返回)

```
$return_data = $PayObject->doRefund();
```

###### \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/

[](#-1)

##### 退款异步回调数据处理

[](#退款异步回调数据处理)

##### 实例化公众号支付类

[](#实例化公众号支付类-3)

```
$PayObject = new WechatJsApiPay();
```

##### 该包内封装了 自动接收异步参数并进行处理验证, 调用函数前必须首先设定key

[](#该包内封装了-自动接收异步参数并进行处理验证-调用函数前必须首先设定key-1)

```
$PayObject->setKey('sfsfsddfgs2343453534gdfgdfsgdfg');
```

##### 返回官方原样参数

[](#返回官方原样参数-1)

```
$return_data = $PayObject->refundCallBack();
//逻辑处理完成后请务必调用retResult方法返回结果给微信
$PayObject->retResult();
```

###### \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/

[](#-2)

#### 退款查询部分

[](#退款查询部分)

##### 实例化公众号支付类

[](#实例化公众号支付类-4)

```
$PayObject = new WechatJsApiPay();
```

##### 以下设置支付参数（只设置了必选参数，其他参数根据需要按照官方文档要求设置即可）

[](#以下设置支付参数只设置了必选参数其他参数根据需要按照官方文档要求设置即可-1)

```
$PayObject->setParam('appid', 'wx2421b1c4370ec43b');
$PayObject->setParam('mch_id', '10000100');
$PayObject->setParam('transaction_id', '1008450740201411110005820873');

$PayObject->setKey('sfsfsddfgs2343453534gdfgdfsgdfg');
```

##### 调用查询订单函数,参数按照微信官方文档返回

[](#调用查询订单函数参数按照微信官方文档返回-1)

```
$return_data = $PayObject->doRefundQuery();
```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity34

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/8f234f8cd80494f600c0ae44520c2b9e3c3d2216c5624fd2ea71bb1a76a65a1c?d=identicon)[longxiaoxia007](/maintainers/longxiaoxia007)

---

Top Contributors

[![longxiaoxia007](https://avatars.githubusercontent.com/u/22314952?v=4)](https://github.com/longxiaoxia007 "longxiaoxia007 (17 commits)")

### Embed Badge

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

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

###  Alternatives

[omnipay/paypal

PayPal gateway for Omnipay payment processing library

3156.8M53](/packages/omnipay-paypal)[eduardokum/laravel-boleto

Biblioteca com boletos para o laravel

626351.9k2](/packages/eduardokum-laravel-boleto)[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)[smhg/sepa-qr-data

Generate QR code data for SEPA payments

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

Dummy driver for the Omnipay payment processing library

271.2M33](/packages/omnipay-dummy)

PHPackages © 2026

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