PHPackages                             vivlong/phalapi-xpay - 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. vivlong/phalapi-xpay

ActiveLibrary[Payment Processing](/categories/payments)

vivlong/phalapi-xpay
====================

PhalApi 2.x 扩展类库：第三方支付扩展，含微信支付和支付宝支付，支持APP支付

132PHP

Since Aug 19Pushed 1y ago1 watchersCompare

[ Source](https://github.com/vivlong/phalapi-xpay)[ Packagist](https://packagist.org/packages/vivlong/phalapi-xpay)[ RSS](/packages/vivlong-phalapi-xpay/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependenciesVersions (1)Used By (0)

PhalApi 2.x 的第三方支付扩展
====================

[](#phalapi-2x-的第三方支付扩展)

PhalApi 2.x扩展类库，含微信支付和支付宝支付，支持APP支付。

安装和配置
-----

[](#安装和配置)

修改项目下的composer.json文件，并添加：

```
    "vivlong/phalapi-xpay":"dev-master"

```

然后执行`composer update`。

安装成功后，添加以下配置到/path/to/phalapi/config/app.php文件：

```
    /**
     * 支付相关配置
     */
    'Xpay' =>  array(
        'alipayapp' => array(
            'app_id'            => '',
            'rsa_privateKey'    => '',
            'rsa_publicKey'     => '',
            'notify_url'        => ''
        ),
        'wechatpayapp' => array(
            'app_id'            => '',
            'mch_id'            => '',
            'app_key'           => '',
            'notify_url'        => '',
        )
    ),
```

并根据自己的情况修改填充。

注册
--

[](#注册)

在/path/to/phalapi/config/di.php文件中，注册：

```
$di->xpay = function() {
        return new \PhalApi\Xpay\Lite();
};
```

使用
--

[](#使用)

请求使用方式：

```
    $di = \PhalApi\DI();
    $xpay = $di->xpay;
    $xpay->set('wechatpayapp');
    $content = 'XX APP';
    $attach = '';
    return $xpay->getPrepayid($order_no, $order_amount, $content, $attach);

    $di = \PhalApi\DI();
    $xpay = $di->xpay;
    $xpay->set('alipayapp');
    $title = 'XX APP';
    $subject = '';
    $passback_params = '';
    return $xpay->getOrderString($this->order_no, $this->order_amount, $title, $subject, $passback_params);
```

Notify回调使用方式：

```
    $di = \PhalApi\DI();
    $xpay = $di->xpay;
    $xpay->set($this->type);
    $notify = $GLOBALS['PAY_NOTIFY'];
    if(!$notify) {
        $di->logger->log('Xpay','Not data commit', array('Type' => $this->type));
        exit; //直接结束程序，不抛出错误
    }
    //验证
    if($xpay->verifyNotify($notify) == true){
        //获取订单信息
        //$info = $xpay->getInfo();
        //TODO 更新对应的订单信息,返回布尔类型
        $res = true;
        //订单更新成功
        if($res){
            if ($this->method == "return") {
                //TODO 同步回调需要跳转的页面
            } else {
                $di->logger->log('Xpay', 'Pay Success', array('Type' => $this->type, 'Method' => $this->method, 'Data'=> $info));
                //移除超全局变量
                unset($GLOBALS['PAY_NOTIFY']);
                //支付接口需要返回的信息，通知接口我们已经接收到了支付成功的状态
                $xpay->notifySuccess();
                exit; //需要结束程序
            }
        }else{
            $xpay->notifyError();
            $di->logger->log('Xpay','Failed to pay');
            exit;
        }
    }else{
        $xpay->notifyError();
        $di->logger->log('Xpay','Verify error', array('Type' => $this->type, 'Method'=> $this->method, 'Data' => $notify));
        exit;
    }
```

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance28

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity17

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/63cebb214330833e8bea309160266105934daf5e70e20db7ae58a6484443f37c?d=identicon)[vivlong](/maintainers/vivlong)

---

Top Contributors

[![vivlong](https://avatars.githubusercontent.com/u/3961154?v=4)](https://github.com/vivlong "vivlong (14 commits)")

### Embed Badge

![Health badge](/badges/vivlong-phalapi-xpay/health.svg)

```
[![Health](https://phpackages.com/badges/vivlong-phalapi-xpay/health.svg)](https://phpackages.com/packages/vivlong-phalapi-xpay)
```

###  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)
