▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/YuPay
YuPay

YuPay

YuPay is a modern, feature-rich payment and donation plugin designed for Minecraft servers (compatible with 1.8.x-1.26.x). It seamlessly integrates WeChat Pay and Alipay

86
0

🎮 YuPay —— Make Sponsorship Management a Pleasure

Minecraft server sponsorship has never been been this elegant.

Direct integration with WeChat Pay & Alipay, redeem code system, refund review, multi-language, full lifecycle event listening — everything you need, YuPay delivers it all at once. Free, no middlemen, no tricks. 100% of the revenue goes straight to your account. The only fees are those charged by Alipay and WeChat.


📦 What Is It

YuPay is a free, modern payment plugin tailored for Minecraft servers. It breaks down the hassle of "sponsorship management" into four steps: Initiate → Pay → Receive → Record. Every step is automated, every step traceable.

Server operators use it to collect sponsorships, players use it to scan and pay. Both sides enjoy a worry-free experience. Supports direct API integration with WeChat Pay and Alipay — no third-party relay, your funds stay secure in your own hands.

⚠️ This plugin is designed for scenarios where "players voluntarily sponsor server operations". Please ensure usage complies with local laws and payment platform regulations.


✨ Highlights at a Glance

CategoryWhat You Get
💳 PaymentWeChat + Alipay dual channels, Native QR scan payment, automatic fallback
💰 EconomyVault + PlayerPoints dual support, one-click switch
🎁 RewardsBase rewards, single milestone, total achievements, limited-time sprints — four trigger layers
🔑 Redeem CodeCreate/redeem/query/modify, supports paid codes, complete logs
💵 RefundPlayers can request refunds, admin approve/deny, forced refund, partial refund
📊 DataLeaderboards, order history, page browsing, one-click copy order ID
🌐 Multi-languageDefault Chinese + English, server owners can customize any language, different players see different languages
🔌 PAPI40+ placeholders, use in scoreboards/titles/item lore
🛡️ SecuritySignature verification, IP whitelist, 24h event monitoring, anti-duplicate delivery
PerformanceFully async, HikariCP connection pool, 600% startup speed boost
🧩 ExtensibilityFull lifecycle event API for deep integration by developers

🔄 What a Complete Sponsorship Looks Like

  1. Player executes a command, e.g. /donate 50 wechat
  2. System creates order asynchronously, writes to database
  3. Calls WeChat/Alipay API to generate payment QR code
  4. Depending on your config, sends clickable link, text-art QR in chat, or map QR in inventory
  5. Player scans and completes payment
  6. Payment platform calls back to your server
  7. Plugin verifies signature, confirms receipt, grants rewards (economy + commands)
  8. Leaderboard and placeholders update in real time
  9. All logs written, traceable anytime

Fully automated. You just configure the rewards, YuPay handles the rest.


🎁 Four Reward Layers, Mix and Match

YuPay's reward system is like a Lego box — four trigger modes you can combine freely.

LayerTriggerExample
Base RewardEvery successful paymentgive {player} diamond 1
Single MilestoneSingle payment reaches threshold50 yuan → 5 gold blocks
Total AchievementLifetime total reaches new height500 yuan → SVIP permission group
Limited SprintCumulative within specified time period200 yuan in 24h → enchanted golden apple

Each layer's commands are fully customizable, support variables like {player}, {amount}, {points}, and can integrate with permission/economy plugins like LuckPerms, CMI, etc.

💡 Adding -n (e.g. /donate 10 -n) makes it a no-reward sponsorship — pure server support, no rewards triggered.


🔑 Redeem Code System: More Than Just a Voucher

YuPay's redeem code module goes far beyond typical "gift codes":

  • Free codes: Players enter to claim — great for event giveaways
  • Paid activation codes: Players must scan and pay a specified amount before redeeming — suitable for selling item entitlements, redeeming codes from other platforms, etc.
  • Economy rewards: Automatically grant Vault currency or PlayerPoints upon redemption
  • Custom commands: Each code can bind a set of commands executed on redemption
  • Usage limits & expiry: Independent control per code
  • Code PAPI: Placeholders directly read any code's status, amount, remaining uses

Create a paid activation code with a single command:

/yp code create --code VIP2026 --amount 50 --economy vault --eco-amount 5000 --commands "lp user {player} parent set vip" --max-uses 100 --expire 30d

💵 Refund System: Bad Debt Terminator

Refunds are no longer a nightmare. YuPay's refund process is complete and reassuring:

  • Players request refund: Submit application with reason
  • Admin reviews: Approve/deny in an orderly manner
  • Forced refund: Direct operation for urgent cases, no waiting for review
  • Partial refund: Flexible handling, precise to the cent
  • Code refund: Refund money and rollback usage count, status automatically restored
  • Refund callback: Interfaces with WeChat/Alipay official refund API, money returns to original payment method
  • Complete logs: Who refunded, how much, when, why — all clear

🌐 Thousand Players, Thousand Languages — No Language Fights

A lifesaver for international server operators.

  • Comes with Simplified Chinese and English complete translations
  • Server owners can add any language file in language.mappings
  • Players switch preference with /yp lang <language>, stored in database, persists across sessions
  • New players automatically detect client language and match the best translation
  • Different players on the same server see different language prompts — truly per-player localization

🔌 Complete PAPI Placeholder List

YuPay provides 40+ built-in PlaceholderAPI placeholders, covering personal, server, leaderboard, and redeem code dimensions. All monetary values keep two decimal places. Full list below:


1. Personal Dimension (requires player context)

PlaceholderDescriptionExample Return
%yupay_is_banned%Whether the player is banned from sponsoringtrue / false
%yupay_total%Player's lifetime total sponsorship (yuan)158.00
%yupay_total_orders%Player's total orders (including failed)7
%yupay_success_orders%Player's successful orders5
%yupay_rank%Player's sponsorship rank (off-rank shows text from language file)3 or Not ranked
%yupay_has_paid_in_<time>%Whether the player has sponsored within the last <time> millisecondstrue / false
%yupay_recent_amount_gt_<time>_<amount>%Whether sponsorship amount in last <time> ms exceeds <amount> yuantrue / false
%yupay_orders_in_<time>%Number of orders in last <time> ms (including failed)2
%yupay_success_orders_in_<time>%Successful orders in last <time> ms2
%yupay_amount_in_<time>%Total sponsorship amount in last <time> ms (yuan)75.50
%yupay_is_limited%Whether today's sponsorship has reached daily limittrue / false
%yupay_daily_remaining%Remaining sponsorship amount for today (yuan)450.00
%yupay_lang%Player's current language identifierzh_cn
%yupay_pay_methods_count%Number of currently available payment channels2
%yupay_pay_methods_list%List of available payment channel names (comma-separated)wechat, alipay

💡 Dynamic parameters: <time> is in milliseconds (e.g. 86400000 = 24h), <amount> is monetary threshold (yuan). All monetary placeholders retain two decimals.


2. Server Dimension (no player needed)

PlaceholderDescriptionExample Return
%yupay_server_total%Server's lifetime total sponsorship (yuan)12850.75
%yupay_server_total_orders%Server's total orders (including failed)312
%yupay_server_success_orders%Server's successful orders289
%yupay_server_orders_in_<time>%Server orders in last <time> ms45
%yupay_server_success_orders_in_<time>%Server successful orders in last <time> ms42
%yupay_server_amount_in_<time>%Server total sponsorship in last <time> ms (yuan)3200.00

3. Leaderboard Dimension (no player needed)

Two formats supported (first recommended):

PlaceholderDescriptionExample Return
%yupay_top_<rank>_name%Player name at rank NSteve
%yupay_top_<rank>_amount%Total sponsorship at rank N (yuan)2000.00
%yupay_top<rank>_name%(legacy format) Same as aboveAlex
%yupay_top<rank>_amount%(legacy format) Same as above1500.00

<rank> ranges 1 ~ 10. If rank doesn't exist, name returns fallback text from language file (default "None"), amount returns 0.00.


4. Redeem Code Dimension

Includes global statistics (no player needed) and specific code attributes (where redeemed and can_redeem require player context).

Global Statistics

PlaceholderDescriptionExample Return
%yupay_code_total%Total number of codes25
%yupay_code_active%Number of active codes (status ACTIVE)18

Specific Code Attributes — replace <code> with actual code string (auto-uppercase)

PlaceholderDescriptionExample (code = VIP2026)
%yupay_code_<code>_status%Current status of the codeACTIVE
%yupay_code_<code>_amount%Required payment amount (yuan)50.00
%yupay_code_<code>_economy_type%Economy reward typevault
%yupay_code_<code>_economy_amount%Economy reward amount5000.00
%yupay_code_<code>_used%Number of times redeemed23
%yupay_code_<code>_max_uses%Max redeem count (-1 = unlimited)100
%yupay_code_<code>_expire%Expiry timestamp (ms), -1 = never1798675199999
%yupay_code_<code>_expire_formatted%Formatted expiry time2026-12-31 23:59
%yupay_code_<code>_remark%Code remark"VIP activation code"
%yupay_code_<code>_locked%Whether locked by a payment (someone is paying)true / false
%yupay_code_<code>_redeemed%Whether current player has redeemed this codetrue / false
%yupay_code_<code>_can_redeem%Whether current player can redeem now (comprehensive check)true / false

💡 _can_redeem checks: code status normal, not expired, uses left, not locked by others, and current player hasn't redeemed it.


Usage Notes

  • All monetary placeholders are in yuan, with two decimal places, e.g. 99.50. Integer amounts also show .00.
  • Dynamic time parameter <time> always uses milliseconds — 24h = 86400000, 7d = 604800000.
  • Code strings in placeholders are auto-uppercased; lowercase input works too.
  • Server and leaderboard placeholders do not require a player context; personal and some code placeholders require a player or return empty/default.
  • Placeholders work in any plugin that supports PlaceholderAPI (scoreboard, BossBar, DeluxeTags, chat prefix, item lore, etc.).

🧩 Gift for Developers

If you can write plugins, these events will make your secondary development experience fly:

EventTriggerModifiable Parameters
PrePaymentEventBefore paymentamount, payment method, order ID, cancel flag
PaymentOrderCreatedEventOrder created successfullyread-only (has QR URL)
PaymentCompletedEventPayment success + rewards grantedread-only (full data)
PaymentFailedEventPayment failed / canceledread-only
RefundCompletedEventRefund completedread-only
RedeemCodeRedeemedEventCode redeemedread-only
RedeemCodeLifetimeEventCode status changedread-only (old → new state)
PlayerPointsChangedEventEconomy changedread-only

All events support sync. You can intercept before order creation, trigger联动 other systems after payment, sync data on refund — every detail of the sponsorship lifecycle is observable.


🛡️ Security Is Not Just Talk

  • Signature verification: WeChat/Alipay callbacks are fully signature-verified against forgery
  • Anti-duplicate delivery: Order status check + idempotent handling
  • IP whitelist: Callback interface can restrict access to official payment platform IPs only
  • TLS/HTTPS: Supports certificate-encrypted communication
  • Event monitoring: /yp audit one-click audit, 24h monitoring of which plugins are listening to YuPay's fund events
  • Map virtual lock: When a payment QR is placed in the inventory, the player is locked in place, cannot drop/switch items, payment unlocks

⚡ Blazing Fast Startup

The rewritten dependency loading system means YuPay no longer requires cumbersome JVM startup parameters. All dependencies are automatically managed, verification speed increased by 600%, out-of-the-box. Drop it into the plugins folder, start the server, it's ready.


📊 Data at Your Fingertips

/yp history is one of your most-used commands. Order history supports page browsing, click an order ID to copy it with one click — reconciliation efficiency doubled.

/yp top lets you know at any time who is contributing to the server — leaderboard data syncs with placeholders in real time.

/yp total for personal stats, /yp total all for server-wide stats — all available at your fingertips.


🚀 Two-Minute Quick Start Guide

  1. Drop YuPay.jar into the plugins/ folder
  2. Start the server, wait for config.yml and messages.yml to generate
  3. Open config.yml, fill in your WeChat/Alipay parameters
  4. Ensure the callback port (default 8080) is open in your server firewall and security group
  5. In-game, type /donate 0.01 to test a small payment
  6. Confirm callback works and rewards arrive — start business 🎉

🏆 Why Server Owners Are Using YuPay

  • Stable: Production-tested, compatible with Spigot/Paper 1.8 to latest versions
  • Reliable: Direct official API connection, no middlemen, money goes to your account directly
  • Worry-free: From payment to rewards fully automated, you just configure
  • Flexible: Reward logic fully programmable, command aliases freely definable
  • Secure: Signature verification + anti-duplicate + IP whitelist + event monitoring
  • Transparent: Every order, every refund, every code redemption has logs
  • Evolving: Actively maintained, continuously iterated, community-driven

💬 Plugin Discussion Group: 1080918424

For issues, feature requests, or just to chat — welcome. Every improvement of YuPay comes from feedback from server owners.

💛 Support the Author on AiFaDian: https://ifdian.net/item/012b6c1c4a0911f18d1b52540025c377

If YuPay has helped your server, consider buying the author a milk tea ~ Your support is the biggest motivation for the plugin's continued evolution.

Stop struggling with sponsorship management. Leave the professional stuff to YuPay, and focus on running your server well.


📖 YuPay Operation Manual

1. Environment Requirements

ItemRequirement
ServerSpigot / Paper / compatible forks / compatible hybrid servers, 1.8 – 1.26+
JavaJDK 8 or higher
Optional dependenciesVault (economy), PlayerPoints (points), PlaceholderAPI (placeholders), ProtocolLib (map lock)

🎉 Good news: You no longer need to manually add JVM startup parameters for Java 9+. YuPay's latest version has built-in smart dependency management — out-of-the-box.

2. Installation & Startup

  1. Download YuPay.jar, place it in the server's plugins/ directory
  2. Start the server, the plugin will automatically generate config.yml, messages.yml, and SQLite database files
  3. Edit plugins/YuPay/config.yml, fill in payment channel configuration parameters
  4. Depending on your payment method, configure callback URLs in the payment platform backend:
    • WeChat: http(s)://your-domain-or-ip:port/pay/wechat/notify
    • Alipay: http(s)://your-domain-or-ip:port/pay/alipay/notify
  5. Ensure the callback port (default 8080) is open in firewall and security group
  6. Execute /yupay reload or type reload in console to apply configuration
  7. In-game, type /donate 0.01 to test a small payment

3. Configuration Quick Reference

3.1 Core Payment Parameters

PathDescriptionExample
pay.default-methodDefault payment methodwechat / alipay
pay.min-amountMinimum amount per order (yuan)0.01
pay.max-amountMaximum amount per order (-1 = unlimited)500
pay.max-daily-amountDaily cumulative limit (-1 = unlimited)1000
pay.order-subjectOrder subject templateSponsorship-{player}-{amount}yuan

3.2 WeChat Pay Parameters

PathDescription
wechat.enabledEnable (true/false)
wechat.mchidMerchant ID
wechat.appidOfficial account / Mini Program AppID
wechat.serial-noAPI certificate serial number
wechat.private-key-pathMerchant private key (relative to pems/ directory)
wechat.public-key-pathPlatform public key (relative to pems/ directory)
wechat.public-key-idPlatform public key ID
wechat.api-v3-keyAPI v3 key (32 characters)
wechat.notify-urlComplete callback notification URL

3.3 Alipay Parameters

PathDescription
alipay.enabledEnable
alipay.modepublic_key or cert
alipay.app-idApp ID
alipay.merchant-private-keyMerchant private key (PKCS8, without headers/footers)
alipay.alipay-public-keyAlipay public key (required for public_key mode)
alipay.app-cert-pathApp public key certificate (cert mode)
alipay.alipay-cert-pathAlipay public key certificate (cert mode)
alipay.alipay-root-cert-pathAlipay root certificate (cert mode)
alipay.notify-urlAsync notification URL
alipay.return-urlSync return URL

3.4 Economy System

PathDescription
economy.enabledEnable economy rewards
economy.typevault or playerpoints
economy.rate1 yuan = how many in-game currency/points

3.5 QR Code Display

PathDescription
qrcode.default-output-modelink / text / map
qrcode.text-qr-sizeText mode QR side length (characters, default 12)
qrcode.text-black-charBlack pixel character (default ██)
qrcode.api-urlImage generation API for link mode

3.6 Callback Server

PathDescription
callback.portListening port
callback.hostBind address (0.0.0.0 = all interfaces)
callback.io-threadsIO thread count
callback.worker-threadsWorker thread count
callback.allowed-ipsIP whitelist (CIDR format, empty = allow all)
callback.access-logEnable access logging

3.7 Database

PathDescription
database.typesqlite (standalone) or mysql (multi-server sync)
database.mysql.*MySQL connection parameters
database.connection-pool.*HikariCP connection pool parameters
database.table-names.prefixTable prefix to avoid conflicts
database.table-names.*Individual business table names (can be customized)

4. Complete Reward Configuration Guide

4.1 Base Reward (on-success)

Executed on every successful payment — suitable for "base reward every sponsorship".

commands:
  on-success:
    - "give {player} diamond 1"
    - "effect give {player} minecraft:speed 30 1"

Available variables: {player} (player name), {amount} (amount), {points} (economy points earned)

4.2 Single Milestone (on-single-achieved)

Triggered when a single payment reaches a set amount. Sort amounts from low to high, multiple tiers allowed.

commands:
  on-single-achieved:
    - amount: 50
      commands:
        - "say {player} reached 50 yuan in a single sponsorship!"
        - "give {player} minecraft:gold_block 5"
    - amount: 100
      commands:
        - "give {player} minecraft:diamond_block 3"
        - "lp user {player} parent set vip"

4.3 Total Achievement (on-total-achieved)

Triggered when lifetime total reaches a new height. Each tier triggers only once — anti-duplicate mechanism built-in.

commands:
  on-total-achieved:
    - total: 100
      commands:
        - "lp user {player} parent set vip"
    - total: 1000
      commands:
        - "lp user {player} parent set ultimate"
        - "give {player} minecraft:beacon 1"

4.4 Limited Sprint Reward (on-recent-achieved)

Triggered when cumulative amount within a specified time period (milliseconds) reaches the target. Great for holiday events, weekend leaderboard pushes, etc.

commands:
  on-recent-achieved:
    - time: 86400000    # 24 hours
      total: 200
      commands:
        - "give {player} minecraft:enchanted_golden_apple 5"
    - time: 604800000   # 7 days
      total: 500
      commands:
        - "give {player} minecraft:elytra 1"

4.5 Refund Trigger Commands (on-refund)

Executed after a successful refund — can be used to notify admins, log events.

commands:
  on-refund:
    - "say {player}'s order {order} has been refunded {amount} yuan"

5. Command System

5.1 Player Commands

CommandFunctionDefault Aliases
/donate <amount> [payment] [output] [-n]Initiate sponsorship/pay, /zanzhu
/ytopSponsorship leaderboard Top10/paytop, /yt
/ytotal [player|all]Query total sponsorship/paytotal, /ytt
/yp history [page]My sponsorship history/yupay history
/yp lang [language]Switch personal language preference
/yp code redeem <code>Redeem a code
/yp cancelCancel current map payment

💡 The -n flag means "no-reward sponsorship" — pure server support, no reward commands or economy items triggered.

5.2 Admin Commands

CommandFunction
/yp reloadHot reload configuration
/yp set <option> <value>Change configuration online
/yp configView current core config
/yp ban <player|all> [reason]Ban from sponsoring (all = global ban)
/yp unban <player|all>Unban
/yp convert <player> <from> <to> <amount>Convert currency (vault/points)
/yp auditAudit all plugins listening to YuPay events
/yp history <player> [page]View any player's order history
/yp code create ...Create a redeem code
/yp code list [page]List codes
/yp code info <code>View code details
/yp code modify <code> <field> <newvalue>Modify code parameters
/yp code delete <code>Disable code (soft delete)
/yp code logs [code] [page]View redemption logs
/yp refund <order-id> [amount]Direct refund
/yp refund list [page]Refund logs
/yp refund request <order-id> [amount]Submit refund review request
/yp refund pending [page]View pending refund requests
/yp refund approve <request-id>Approve request
/yp refund reject <request-id>Reject request

5.3 Key Permission Nodes

Permission NodeOperations
yupay.command.payInitiate sponsorship
yupay.command.topView leaderboard
yupay.command.totalQuery total sponsorship
yupay.command.historyView order history
yupay.reloadReload config
yupay.banManage blacklist
yupay.convertCurrency conversion
yupay.auditEvent listener audit
yupay.adminIncludes all above admin permissions

6. Redeem Code System In-Depth

6.1 Code Creation Command Details

Code creation uses named parameters in --param value format, freely combinable:

# Free welfare code (unlimited uses, never expires)
/yp code create --code FREEGIFT --max-uses -1 --economy vault --eco-amount 100 --remark "New player gift"

# Paid activation code (pay 50 yuan to redeem, 100 uses, expires after 30 days)
/yp code create --code PREMIUM --amount 50 --economy vault --eco-amount 5000 --max-uses 100 --expire 30d --commands "lp user {player} parent set vip"

# Command-only code (no economy, no payment)
/yp code create --code WELCOME --commands "give {player} diamond 5; say {player} Welcome back!"

Parameter quick reference:

ParameterDescriptionExample
--codeCode string (auto-uppercase)VIP2026
--amountRequired payment amount (0 = free)50
--economyEconomy type (vault / playerpoints / none)vault
--eco-amountEconomy reward amount5000
--max-usesMax redeem count (-1 = unlimited)100
--expireExpiry time (30d / 24h / 2026-12-31 / never)30d
--commandsCommands to execute on redemption (semicolon-separated)"cmd1; cmd2"
--remarkRemark description"VIP activation code"

6.2 Code Status Explanation

StatusMeaning
ACTIVEUsable
DEPLETEDUses exhausted (automatic)
EXPIREDExpired (automatic)
DISABLEDManually disabled by admin

6.3 Code PAPI Placeholders

Using code VIP2026 as example:

PlaceholderExample Return
%yupay_code_total%Total number of codes
%yupay_code_active%Number of active codes
%yupay_code_VIP2026_status%ACTIVE
%yupay_code_VIP2026_amount%50.00
%yupay_code_VIP2026_used%23
%yupay_code_VIP2026_max_uses%100
%yupay_code_VIP2026_expire_formatted%2026-12-31 23:59
%yupay_code_VIP2026_can_redeem%true / false
%yupay_code_VIP2026_locked%true / false
%yupay_code_VIP2026_redeemed%Whether current player has redeemed

7. Refund System In-Depth

7.1 Refund Method Comparison

MethodCommand ExampleUse Case
Direct refund/yp refund ORDER001 50Confirmed refund needed, quick processing
Forced refund/yp refund ORDER001 50 -fSkip amount check, refund directly
Partial refund/yp refund ORDER001 30Refund part of the amount
Approval workflow/yp refund request ORDER001 → wait for approveScenarios requiring approval
Code refund/yp refund -r <redemption-log-id>Refund code payment + restore usage count

7.2 Refund Approval Workflow

  1. Player or admin submits refund request: /yp refund request <order-id> [amount]
  2. Admin views pending list: /yp refund pending
  3. Approve or reject: /yp refund approve <request-id> / reject
  4. Upon approval, actual refund automatically executes; upon rejection, requester is notified

7.3 What Happens After Refund

  • Payment platform (WeChat/Alipay) receives refund request, money returns to original payment method
  • Plugin updates order refund status (FULL_REFUND / PARTIAL_REFUND)
  • If code refund: code usage count -1, status restored to ACTIVE
  • Executes commands configured in commands.on-refund
  • Triggers RefundCompletedEvent for other plugins to react
  • Complete refund logs written to database

8. Multi-Language System

8.1 Adding a Language

Add under language.mappings node in config.yml:

language:
  mappings:
    zh_cn:
      file: "messages.yml"
      aliases: [zh, cn, chinese]
      client-locales: ["zh_cn", "zh_*"]
    en:
      file: "messages_en.yml"
      aliases: [english, eng]
      client-locales: ["en_*"]
    ja:
      file: "messages_ja.yml"
      aliases: [japanese, jp]
      client-locales: ["ja_*"]

Then create plugins/YuPay/messages_ja.yml, translating based on messages.yml. Plugin will automatically fill in missing keys.

8.2 Switching Language

  • Players switch manually: /yp lang en (supports aliases, e.g. english)
  • First join auto-detects client language and matches best translation
  • Language preference stored in database, remembered across sessions

9. Database Selection Guide

Server ScaleRecommended TypeReason
Single small serverSQLiteZero configuration, out-of-the-box
Multi-server networkMySQLUnified data, cross-server sync
Large networkMySQL + connection poolHigh concurrency support, connection reuse

10. Troubleshooting Common Issues

Callback server fails to start

  • Check if port is occupied
  • Confirm firewall/security group has opened the port
  • Check console error logs

Payment successful but rewards not received

  • Check order status in database — should be SUCCESS
  • Confirm economy.enabled and commands.enabled are both true
  • Check console for economy plugin load errors

Map QR code not showing

  • Confirm ProtocolLib matching server version is installed
  • Check if qrcode.default-output-mode is set to map
  • If ProtocolLib missing, mode auto-falls back to link

WeChat Pay says public key file not found

  • Check existence of plugins/YuPay/pems/ directory
  • Confirm wechat.public-key-path is correct
  • Go to WeChat Merchant Platform → API Security → API Certificates → download platform certificate

Configuration lost after plugin upgrade

  • YuPay has built-in smart config upgrader — automatically backs up old file (.bak suffix) and merges new keys
  • Manual backup before upgrade for extra peace of mind

11. Database Tables

Table NameStored Content
yu_paymentsAll payment orders, including refund status
yu_total_levelsCumulative reward tier records
yu_banned_playersSponsorship blacklist
yu_player_langPlayer language preferences
yu_redeem_codesRedeem code master table
yu_redeem_logsRedemption records
yu_refund_logsRefund operation logs
yu_refund_requestsRefund review requests

12. Uninstallation Steps

  1. Execute /yp reload (ensure in-memory config is flushed)
  2. Stop the server
  3. Delete plugins/YuPay.jar
  4. For complete removal, delete plugins/YuPay folder (including database)

💬 Plugin Discussion Group: 1080918424 Don't struggle alone — bring your logs and config screenshots to the group, the author and helpful server owners are there.

💛 Support the Author on AiFaDian: https://ifdian.net/item/012b6c1c4a0911f18d1b52540025c377

If YuPay has helped your server, consider buying the author a milk tea ~ Your support is the biggest motivation for the plugin's continued evolution.

Совместимость

Minecraft: Java Edition

26.1.x1.21.x1.20.x1.19.x1.18.x1.17.x1.16.x1.15.x1.14.x1.13.x1.12.x1.11.x1.10.x1.9.x1.8.x

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:LicenseRef-All-Rights-Reserved
Опубликован:3 месяца назад
Обновлён:1 день назад
Главная