Download the PHP package kitelab-dev/byl-laravel without Composer

On this page you can find all versions of the php package kitelab-dev/byl-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package byl-laravel

Byl Laravel SDK

Byl.mn төлбөрийн системийн албан ёсны Laravel SDK. Нэхэмжлэх, checkout, харилцагч, захиалга (subscription), billing portal болон webhook-ийг Laravel-д зохицсон байдлаар ашиглана.

Агуулга

Суулгах

Тохиргооны файлыг (шаардлагатай бол) хуулна:

Тохиргоо

.env файлд:

Нэмэлт тохиргоо (config/byl.php): base_url (жш: https://byl.test), timeout, retry, webhook.route.*.

Test горим. Test горимын төсөлд гүйлгээ 50 төгрөгөөр хязгаарлагдана — код тал нь ижил, өөр токен/төсөл ашиглана.

Нэхэмжлэх

Нэхэмжлэх, checkout, portal session объектуудыг controller-оос шууд буцаахад тухайн хуудас руу redirect хийнэ:

Checkout

Хэрэглэгчийн худалдан авалтыг Byl-ийн hosted checkout хуудсаар зохицуулна — төлбөр, купон, хаяг, баримт зэргийг Byl хийнэ.

Массив хэлбэрээр ч дамжуулж болно:

Лавлах:

pending төлөв. Банкны дансаар төлөх үед харилцагч «Шилжүүлсэн» гэж мэдэгдсэн ч merchant баталгаажуулаагүй байвал checkout pending төлөвтэй байна ($checkout->isPending()). Мөнгө баталгаажаагүй тул энэ үед бараа/эрх олгож болохгүй — зөвхөн checkout.completed (эсвэл isComplete()) дээр олгоно.

Хөнгөлөлтийн код. Бүтээгдэхүүний хямдралтай код ашиглах бол бүх item-д price_id (addPriceId()) хэрэглэнэ. Захиалгын нийт дүнгээс хөнгөлөх кодод price_data ч болно.

Харилцагч

client_reference_id-д өөрийн хэрэглэгчийн ID-г дамжуулбал endpoint нь upsert шиг ажиллана — давхардал үүсгэхгүй тул checkout үүсгэхийн өмнө бүр удаа дуудаж болно.

Захиалга (Subscription)

Recurring үнэтэй checkout төлөгдөхөд subscription автоматаар үүснэ (customer_id заавал, ганц item):

Сунгалт / багц солилт (одоогийн subscription-ийг дамжуулна):

Бусад үйлдлүүд:

Хэрэглэгчийн эрхийг subscription.canceled webhook ирэх хүртэл нээлттэй байлга — trialing, active, past_due бүгд эрхтэйд тооцогдоно (isEntitled()).

Billable trait

Laravel Cashier шиг модель дээрээ шууд ажиллах хувилбар. Захиалга нь локал byl_subscriptions хүснэгтэд тусах бөгөөд webhook ирэх бүрд автоматаар шинэчлэгддэг тул $user->subscribed() шалгалт сүлжээнд гарахгүй.

Эрхийн шалгалт (локал)

Route хамгаалах:

config('byl.billable.redirect_to') тохируулбал эрхгүй хэрэглэгчийг тэр хаяг руу чиглүүлнэ, эс бөгөөс 403 буцаана.

Lookup key. Багцаар шалгах (subscribed('starter_monthly')) боломж нь Byl дээр тухайн үнэд lookup key тохируулсан байхыг шаардана — тохируулаагүй үнэ дээр lookup_key нь null тул subscribedToPrice($priceId) эсвэл subscribedToProduct($productId) хэрэглэнэ. Мөн 2026-08-22-аас өмнөх Byl webhook нь lookup key явуулдаггүй байсан тул тэр үед үүссэн мөрүүдийг php artisan byl:backfill-subscriptions командаар нөхөнө.

Захиалга эхлүүлэх

Харилцагч Byl дээр байхгүй бол checkout() / startTrial() нь client_reference_id-аар upsert хийж byl_customer_id-г автоматаар хадгална.

Сунгах, багц солих, цуцлах

Cashier-аас ялгаатай тал: Монголд автомат суутгал байдаггүй тул swap(), renew() нь шууд төлбөр авахын оронд checkout буцаадаг (swapCheckout(), renewCheckout()) — хэрэглэгч төлбөрөө өөрөө төлнө.

Cashier Byl SDK
$user->subscribed('default') $user->subscribed('starter_monthly')
$user->subscription() $user->bylSubscription()
$user->newSubscription(...)->checkout() $user->newSubscription('starter_monthly')->checkout()
$user->newSubscription(...)->trialDays(14)->create() $user->newSubscription('starter_monthly')->startTrial(14)
$subscription->swap($price) $subscription->swapCheckout($price)
$subscription->renewCheckout($cycles)
$user->redirectToBillingPortal() $user->redirectToBillingPortal()
$user->createAsStripeCustomer() $user->createOrGetBylCustomer()

Байгаа өгөгдлөө нөхөх / өөр модель холбох

Бүх billable-ыг нэг дор нөхөх (алдсан webhook, эсвэл lookup_key хоосон үлдсэн мөрүүдийг засах):

byl_customer_id бүхий billable бүрийн захиалгыг API-аас татаж локал мөрийг шинэчилнэ — нэг харилцагч дээр алдаа гарвал алгасаад үргэлжилнэ.

client_reference_id нь өгөгдмөлөөр primary key. Өөрөөр холбох бол:

Модель дээр bylCustomerEmail(), bylCustomerName(), bylCustomerPhone(), bylClientReferenceId() method-уудыг дарж бичиж болно.

Billing portal

Хэрэглэгч захиалгаа өөрөө удирдах self-service хуудас. Session нь 30 минут хүчинтэй тул орох бүрд шинээр үүсгэнэ:

Эсвэл URL-ыг өөрөө хэрэглэнэ:

Webhook

Package нь POST /byl/webhook endpoint-ийг автоматаар бүртгэж, Byl-Signature гарын үсгийг шалгаад Laravel event болгон илгээнэ. Byl веб хуудсанд webhook нэмэхдээ энэ хаягийг бүртгэнэ.

Event классууд (Byl\Laravel\Events\):

Event класс Byl-ийн event
InvoicePaid invoice.paid
InvoiceVoided invoice.void
CheckoutCompleted checkout.completed
CheckoutExpired checkout.expired
SubscriptionCreated subscription.created
SubscriptionRenewed subscription.renewed
SubscriptionUpdated subscription.updated
SubscriptionRenewalDue subscription.renewal_due
SubscriptionPastDue subscription.past_due
SubscriptionCanceled subscription.canceled
PaymentAwaitingVerification payment.awaiting_verification
PaymentVerificationDue payment.verification_due
WebhookReceived бүх event (танигдаагүй төрөл ч)

Банкны шилжүүлэг

Банкны дансаар төлөх үед харилцагч шилжүүлгээ хийснээ мэдэгдэхэд payment.awaiting_verification, баталгаажуулаагүй шилжүүлгийн 3 хоногийн хугацаа дуусахаас 24 цагийн өмнө payment.verification_due event ирнэ. Хоёулангийнх нь объект нь Byl\Laravel\Data\Payment DTO:

Энэ хоёр event нь төлбөр төлөгдсөн гэсэн үг биш — merchant Byl дээр баталгаажуулсны дараа checkout.completed / invoice.paid ирнэ. Эрхийг зөвхөн тэр үед олгоно.

Хаяг эсвэл middleware-г тохируулах:

Өөрийн controller хэрэглэх бол route-г хааж, byl-signature middleware-ийг залгана:

Byl амжилтгүй хүсэлтийг 3 хүртэл удаа дахин илгээдэг тул listener-ээ idempotent бичээрэй. Эсвэл BYL_WEBHOOK_PREVENT_DUPLICATES=true болгож ижил event ID-г хаана (sync listener-тэй үед найдвартай).

Алдааны боловсруулалт

Бүх алдаа Byl\Laravel\Exceptions\BylException interface-ийг хэрэгжүүлдэг:

Exception Статус
AuthenticationException 401 — токен буруу/хүчингүй
AuthorizationException 403 — эрхгүй
NotFoundException 404 — олдсонгүй
ConflictException 409 — жш: цуцлагдсан захиалгыг дахин цуцлах
ValidationException 422 — параметер буруу
RateLimitException 429 — retryAfter()
ServerException 5xx
ApiException бусад HTTP алдаа
ConnectionException сүлжээ/timeout
ConfigurationException токен/төслийн ID дутуу

Холболтын алдаа, 429 болон 5xx хариу дээр SDK автоматаар (default 2 удаа) дахин хүсэлт илгээнэ — config('byl.retry').

Хэд хэдэн төсөл

Тест бичих

Byl::fake() нь сүлжээнд гарахгүйгээр бодит бүтэцтэй хариу буцааж, хүсэлтүүдийг шалгах боломж өгнө:

Хариуг өөрөө тодорхойлох, алдаа симуляц хийх:

Webhook-ийг гарын үсэгтэйгээр туршина:

FakeWebhook::invoicePaid(), FakeWebhook::checkoutCompleted(), FakeWebhook::make($type, $object, $data) мөн бэлэн байна. Payload-ыг InvoiceFactory, CheckoutFactory, CustomerFactory, SubscriptionFactory (Byl\Laravel\Testing\) хэлбэрээр өөрчилнө — тэдгээр нь Byl-ээс ирдэг бодит payload-ийн бүтцийг (харилцагч нь customer объект, бүтээгдэхүүн нь product объект, үнэ нь price объект) хуулбарладаг.

Lookup key тохируулаагүй үнийг симуляц хийх:

Хөгжүүлэлт

Лиценз

MIT — LICENSE.md.


All versions of byl-laravel with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
guzzlehttp/promises Version ^2.0
illuminate/contracts Version ^11.0|^12.0|^13.0
illuminate/http Version ^11.0|^12.0|^13.0
illuminate/support Version ^11.0|^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package kitelab-dev/byl-laravel contains the following files

Loading the files please wait ...