{"adoption": {"forks": 1122, "observed_at": "2026-08-28T04:09:15.195108+00:00", "stars": 5294}, "canonical_url": "https://ross.abutalabs.com/products/xpay", "card": {"archived": false, "artifact_type": "application", "description": "XPay个人免签收款支付系统 完全免费 资金直接到达本人账号 支持 支付宝 微信 QQ 云闪付 无需备案 无需签约 无需挂机监控APP 无需插件 无需第三方支付SDK 无需营业执照身份证 只需收款码 搞定支付流程 现已支持移动端支付 ", "domain": ["fintech", "e-commerce", "web-development", "self-hosted"], "enriched": true, "function": ["web-framework", "api-framework", "email"], "health_score": 20, "homepage": "http://xpay.exrick.cn/", "language": "Java", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["Exrick/xpay"], "name": "Exrick/xpay", "platform": ["jvm", "self-hosted", "cross-platform"], "pushed_at": "2024-08-26T16:10:08+00:00", "repo": "Exrick/xpay", "stars": 5294, "tags": ["payment-gateway", "personal-payment", "qr-code-payment", "alipay", "wechat-pay", "spring-boot", "免签支付", "unionpay", "payment", "web-server"], "topics": [], "urls": [], "use_cases": ["accept personal payments online without a business license", "self-hosted alipay and wechat pay for individuals", "add donation or payment collection to a personal website", "integrate qr code payment callback into a spring boot app", "avoid third-party payment aggregator fees", "support mobile h5 and app payment flows for personal收款"], "what_it_is": "XPay is a free, self-hosted personal payment collection system written in Java (Spring Boot) that lets individuals accept payments via Alipay, WeChat, QQ Wallet, and UnionPay (云闪付) using only their personal QR codes, without merchant registration or third-party SDKs. It handles the full payment flow including order confirmation, email/SMS notifications, and manual or automatic callback confirmation, with funds going directly to the user's own account.", "when_to_avoid": ["you need high-volume or fully commercial payment processing", "you require fully automated, guaranteed payment callbacks without manual email review on the free tier", "your business could be affected by payment platform risk-control measures on personal accounts", "you need PCI-compliant or officially sanctioned payment integration for a registered business"], "when_to_choose": ["you are an individual developer who cannot qualify for official merchant payment APIs", "you want funds to arrive directly in your own account with no intermediaries or fees", "you need a lightweight, self-hosted payment solution for low-volume personal transactions", "you want a spring boot learning project with a real-world payment use case"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xpay", "repo": "Exrick/xpay", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:59:11.358460+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "089b846bcb81405a8c6f3ed99d7145dce543b04f6e92feab7d36b3706532e656", "fetched_at": "2026-08-28T04:09:15.195108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Exrick/xpay"}, {"content_hash": "0f35db595cb174bc33b5282034d2c335ac03086858ce39b3c7fb9cbe75eec410", "fetched_at": "2026-08-29T08:53:58.549312+00:00", "kind": "homepage", "missing": false, "url": "http://xpay.exrick.cn/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:59:11.358460+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "089b846bcb81405a8c6f3ed99d7145dce543b04f6e92feab7d36b3706532e656", "fetched_at": "2026-08-28T04:09:15.195108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Exrick/xpay"}, {"content_hash": "0f35db595cb174bc33b5282034d2c335ac03086858ce39b3c7fb9cbe75eec410", "fetched_at": "2026-08-29T08:53:58.549312+00:00", "kind": "homepage", "missing": false, "url": "http://xpay.exrick.cn/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:59:11.358460+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "089b846bcb81405a8c6f3ed99d7145dce543b04f6e92feab7d36b3706532e656", "fetched_at": "2026-08-28T04:09:15.195108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Exrick/xpay"}, {"content_hash": "0f35db595cb174bc33b5282034d2c335ac03086858ce39b3c7fb9cbe75eec410", "fetched_at": "2026-08-29T08:53:58.549312+00:00", "kind": "homepage", "missing": false, "url": "http://xpay.exrick.cn/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:59:11.358460+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "089b846bcb81405a8c6f3ed99d7145dce543b04f6e92feab7d36b3706532e656", "fetched_at": "2026-08-28T04:09:15.195108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Exrick/xpay"}, {"content_hash": "0f35db595cb174bc33b5282034d2c335ac03086858ce39b3c7fb9cbe75eec410", "fetched_at": "2026-08-29T08:53:58.549312+00:00", "kind": "homepage", "missing": false, "url": "http://xpay.exrick.cn/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:59:11.358460+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "089b846bcb81405a8c6f3ed99d7145dce543b04f6e92feab7d36b3706532e656", "fetched_at": "2026-08-28T04:09:15.195108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Exrick/xpay"}, {"content_hash": "0f35db595cb174bc33b5282034d2c335ac03086858ce39b3c7fb9cbe75eec410", "fetched_at": "2026-08-29T08:53:58.549312+00:00", "kind": "homepage", "missing": false, "url": "http://xpay.exrick.cn/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:59:11.358460+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "089b846bcb81405a8c6f3ed99d7145dce543b04f6e92feab7d36b3706532e656", "fetched_at": "2026-08-28T04:09:15.195108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Exrick/xpay"}, {"content_hash": "0f35db595cb174bc33b5282034d2c335ac03086858ce39b3c7fb9cbe75eec410", "fetched_at": "2026-08-29T08:53:58.549312+00:00", "kind": "homepage", "missing": false, "url": "http://xpay.exrick.cn/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:15.195108+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:59:11.358460+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "089b846bcb81405a8c6f3ed99d7145dce543b04f6e92feab7d36b3706532e656", "fetched_at": "2026-08-28T04:09:15.195108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Exrick/xpay"}, {"content_hash": "0f35db595cb174bc33b5282034d2c335ac03086858ce39b3c7fb9cbe75eec410", "fetched_at": "2026-08-29T08:53:58.549312+00:00", "kind": "homepage", "missing": false, "url": "http://xpay.exrick.cn/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:59:11.358460+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "089b846bcb81405a8c6f3ed99d7145dce543b04f6e92feab7d36b3706532e656", "fetched_at": "2026-08-28T04:09:15.195108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Exrick/xpay"}, {"content_hash": "0f35db595cb174bc33b5282034d2c335ac03086858ce39b3c7fb9cbe75eec410", "fetched_at": "2026-08-29T08:53:58.549312+00:00", "kind": "homepage", "missing": false, "url": "http://xpay.exrick.cn/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:59:11.358460+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "089b846bcb81405a8c6f3ed99d7145dce543b04f6e92feab7d36b3706532e656", "fetched_at": "2026-08-28T04:09:15.195108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Exrick/xpay"}, {"content_hash": "0f35db595cb174bc33b5282034d2c335ac03086858ce39b3c7fb9cbe75eec410", "fetched_at": "2026-08-29T08:53:58.549312+00:00", "kind": "homepage", "missing": false, "url": "http://xpay.exrick.cn/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:59:11.358460+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "089b846bcb81405a8c6f3ed99d7145dce543b04f6e92feab7d36b3706532e656", "fetched_at": "2026-08-28T04:09:15.195108+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Exrick/xpay"}, {"content_hash": "0f35db595cb174bc33b5282034d2c335ac03086858ce39b3c7fb9cbe75eec410", "fetched_at": "2026-08-29T08:53:58.549312+00:00", "kind": "homepage", "missing": false, "url": "http://xpay.exrick.cn/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3186, "days_push": 737, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}