Skip to content

makepay-io/makepay-unreal

Repository files navigation

MakePay Unreal

Runtime Unreal Engine plugin for MakePay checkout flows in games, creator tools, and server-authoritative digital goods.

The plugin exposes Blueprint nodes and C++ helpers for:

  • creating checkout sessions through your own backend;
  • opening trusted MakePay checkout URLs;
  • building mobile/desktop return deep links;
  • parsing return URLs for UI state;
  • keeping durable entitlements server-authoritative.

MakePay credentials, webhook verification, and item grants must stay on your backend. The plugin never calls authenticated MakePay APIs from a packaged game.

Install

From your Unreal project root:

mkdir -p Plugins
git submodule add https://github.com/makecryptoio/makepay-unreal.git Plugins/MakePay

Regenerate project files, rebuild the project, then enable MakePay in Edit > Plugins if it is not already enabled.

Blueprint Flow

  1. Build a MakePayCheckoutSessionRequest.
  2. Call Create MakePay Checkout Session with your backend endpoint.
  3. On success, call Open Checkout Url with the returned checkout URL.
  4. Parse return/deep-link URLs with Parse Checkout Return Url.
  5. Unlock credits, ranks, skins, or donations only after your backend verifies the paid webhook.
sequenceDiagram
    participant Game as Unreal game
    participant Backend as Game backend
    participant MakePay

    Game->>Backend: POST checkout request
    Backend->>MakePay: Create checkout
    MakePay-->>Backend: checkoutUrl
    Backend-->>Game: checkoutUrl
    Game->>MakePay: Launch checkout
    MakePay-->>Game: Return deep link
    MakePay-->>Backend: Paid webhook
    Backend-->>Game: Entitlement available
Loading

C++ Example

FMakePayCheckoutSessionRequest Request;
Request.ExternalId = TEXT("order_123");
Request.AmountMinor = 999;
Request.Currency = TEXT("USD");
Request.Description = TEXT("Starter credit pack");
Request.SuccessUrl = UMakePayBlueprintLibrary::BuildReturnUrl(TEXT("mygame"), TEXT("makepay/return"), Request.ExternalId);
Request.CancelUrl = UMakePayBlueprintLibrary::BuildReturnUrl(TEXT("mygame"), TEXT("makepay/cancel"), Request.ExternalId);

The async checkout node posts that payload to your backend. Your backend response should include:

{
  "checkoutUrl": "https://checkout.makepay.io/pay/example",
  "sessionId": "session_123",
  "externalId": "order_123",
  "expiresAt": "2026-05-29T12:00:00Z"
}

Security Model

  • Do not store MakePay credentials in plugin source, config, Blueprints, cooked content, or client save data.
  • Do not call authenticated MakePay APIs from Unreal clients.
  • Treat return URLs as UI hints only.
  • Grant durable goods only after backend webhook verification.
  • Use ExternalId to connect a player, order, SKU, amount, and entitlement record.

Validation

This repository includes static validation for descriptor shape, module layout, and client-side safety constraints:

node scripts/validate.mjs

Full compilation requires an Unreal Engine 5.x installation. In CI, the lightweight validator prevents layout regressions and credential leaks.

About

Unreal Engine Blueprint and C++ helpers for MakePay checkout and game backend handoffs. Cryptocurrency payment gateway for direct self-custody merchant-wallet settlement, decentralized swaps, and 70+ coin/20+ chain auto-conversion.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors