PHPackages                             xehub/xepay - 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. xehub/xepay

ActiveLibrary[Payment Processing](/categories/payments)

xehub/xepay
===========

1.0.0(6y ago)095[1 issues](https://github.com/xpressengine/xepay/issues)LGPL-3.0-or-laterPHPCI failing

Since Mar 26Pushed 5y ago5 watchersCompare

[ Source](https://github.com/xpressengine/xepay)[ Packagist](https://packagist.org/packages/xehub/xepay)[ RSS](/packages/xehub-xepay/feed)WikiDiscussions master Synced 3d ago

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

### 사전 작업

[](#사전-작업)

payment 패키지를 사용하기 위해선 `PaymentManager` 에 `Order` interface 가 구현된 주문객체를 제공하는 `OrderProvider` 가 등록되어야 합니다.

```
use use Xehub\Xepay\OrderProvider;

class CustomOrderProvider implements OrderProvider
{
    ...
}
```

```
class AppServiceProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->resolving('xepay', function ($payment, $app) {
           $payment->provider('custom', function () {
               return new CustomOrderProvider();
            });
        });
    }
}
```

그리고 등록한 provider 를 config 에 지정합니다.

```
return [
    'default' => [
        'provider' => 'custom',
    ],

    ...
];
```

사용할 pg 는 config 에 `enables` 항목에 작성합니다. 2개 이상의 pg를 사용하는 경우 각 pg 는 쉼표(,)로 구분합니다.

```
'enables' => env('PAYMENT_ENABLES', 'paypal'),
```

또한, 동작에 필요한 스크립트 파일을 public 디렉토리에 퍼블리싱합니다.

```
# php artisan vendor:publish --tag=payment

```

패키지가 업데이트된경우 `--force` 옵션을 추가하여 실행합니다.

> PaymentServiceProvider 가 auto discover 되지 않은 경우에는 config/app.php 에 service provider 를 등록해야 합니다.

### 결제페이지 기능 삽입

[](#결제페이지-기능-삽입)

결제페이지 하단에 `@paying($order)`와 같이 blade 지시자를 삽입합니다. 전달하는 `$order` 는 주문객체(Order) 입니다.

결제 기능에서 사용하는 결제수단은 1개 이상일 수 있습니다. 결제수단은 `app('xepay')->getMethods()` 를 이용하여 화면에 표시 및 처리할 수 있습니다.

이제 사용자가 결제페이지에서 결제 버튼을 클릭(혹은 폼 submit) 시 해당 이벤트 리스너에서 결제동작을 호출해야 합니다.

```

$('.btn-submit').click(function () {
  xepay.exec(method);
});

```

메서드를 실행할때 사용자가 선택한 결제수단 코드를 전달하세요.

결제완료시 사용해야할 기타 정보들이 있다면 두번째 인자로 값들을 전달하세요.

```
xepay.exec(method, params);
```

결제기능의 js 내에는 몇가지 이벤트가 심어저 있습니다. 결제요청중 필요한 처리가 있는 경우 이 이벤트를 통해 작업을 수행할 수 있습니다. 예를들어 중복 요청 방지를 위해 `exec()` 를 실행하기전 결제버튼을 disabled 한 경우 결제 폼 요청이 완료된 후 `prepare.complete` 이벤트를 통해 disabled 를 해제할 수 있습니다.

```
xepay.listen('prepare.complete', function () {
  $('.btn-submit').prop('disabled', false);
});
```

### 결제 후 처리

[](#결제-후-처리)

결제가 성공하고 주문객체(Order)에 성공처리를 요청하기 전, Paid 이벤트가 호출됩니다. 필요한 작업을 이벤트로 등록하여 처리합니다.

```
use Xehub\Xepay\Events\Paid;
Event::listen(Paid::class, function($event) {
    // 필요한 비지니스 로직을 작성합니다.
});
```

주문객체에 성공처리가 끝난 후에 처리해야 하는 코드는 `OrderProvider::success` 를 통해 처리하세요.

### 페이지 이동

[](#페이지-이동)

결제가 성공, 또는 실패하는 경우 이동될 페이지를 지정할 수 있습니다.

```
app('xepay.redirect')->completing(function ($order) {
    return route('complete', $order->getOrderId());
});
```

이동시 세션처리등 부가적인 작업을 수행하는 경우라면, RedirectResponse 를 직접 반환하여 처리할 수 있습니다.

```
app('xepay.redirect')->completing(function ($order) {
    return redirect()->route('complete', $order->getOrderId())
        ->with('message', 'payment complete!');
});
```

결제 실패시에는 `failing` 메소드를 사용하세요.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity57

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

Unknown

Total

1

Last Release

2227d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2b62a02aecefec602d220fe148b270988562282e74be569228611cf33a6f90b2?d=identicon)[jhyeon1010](/maintainers/jhyeon1010)

![](https://www.gravatar.com/avatar/6ca1aa9997648925ab227170b9d87d19b1cc52d2c40b890f937317a947912acc?d=identicon)[xpressengine](/maintainers/xpressengine)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/xehub-xepay/health.svg)

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

###  Alternatives

[lemonsqueezy/laravel

A package to easily integrate your Laravel application with Lemon Squeezy.

58596.1k](/packages/lemonsqueezy-laravel)[ssheduardo/redsys-laravel

Package redsys for laravel

100129.5k1](/packages/ssheduardo-redsys-laravel)[duncanmcclean/simple-commerce

A simple, yet powerful e-commerce addon for Statamic.

16313.2k2](/packages/duncanmcclean-simple-commerce)[tsaiyihua/laravel-ecpay

ecpay library for laravel

6416.3k](/packages/tsaiyihua-laravel-ecpay)[alifaraun/laravel-moamalat-pay

Easy - Moamalat Lightbox integration for Laravel.

1914.0k](/packages/alifaraun-laravel-moamalat-pay)[duncanmcclean/statamic-cargo

Comprehensive e-commerce addon for Statamic. Build bespoke e-commerce sites without the complexity.

322.8k](/packages/duncanmcclean-statamic-cargo)

PHPackages © 2026

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