<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>IMBoy 博客</title><description>可私有化部署的开源即时通讯平台 IMBoy：技术深挖、工程实践与产品洞见</description><link>https://www.imboy.pub/</link><language>zh-cn</language><item><title>日元没有&quot;分&quot;，退款要带流水号：支付代码里两条要命的规矩</title><link>https://www.imboy.pub/blog/data/money-integers-refund-idempotency/</link><guid isPermaLink="true">https://www.imboy.pub/blog/data/money-integers-refund-idempotency/</guid><description>0.1 + 0.2 ≠ 0.3，收钱的代码不能有浮点；但「分 = ×100」也是误区——日元小数 0 位、第纳尔 3 位。退款必须带稳定流水号做幂等，超时先查单再重试。任何语言都用得上的两条支付军规。</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate></item><item><title>先验章，再拆包：支付回调的验签到底在防什么</title><link>https://www.imboy.pub/blog/security/verify-before-parse-webhook/</link><guid isPermaLink="true">https://www.imboy.pub/blog/security/verify-before-parse-webhook/</guid><description>伪造一条「支付成功」回调只需要一条 curl。验签就是验防伪章：RSA2/平台公钥/HMAC 三种章怎么验，±300 秒防重放、常量时间比较、核对 app_id——以及最重要的误区：验签通过 ≠ 可以发货。</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate></item><item><title>erlang_pay 为 Erlang 补上支付这块拼图:一个库接支付宝、微信、Stripe</title><link>https://www.imboy.pub/blog/infra/erlang-pay-payment-gateway/</link><guid isPermaLink="true">https://www.imboy.pub/blog/infra/erlang-pay-payment-gateway/</guid><description>官方 SDK 没有 Erlang 版？纯 Erlang 支付网关库 erlang_pay：一套 API 接支付宝 App、微信支付 v3、Stripe，下单/退款/回调验签/对账全生命周期。10 个源文件 2741 行，运行时仅依赖 OTP + jsone，213 个测试用例真签名验证。</description><pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate></item><item><title>IMBoy 消息确认机制：消息真的送到了吗？</title><link>https://www.imboy.pub/blog/infra/message-acknowledgment/</link><guid isPermaLink="true">https://www.imboy.pub/blog/infra/message-acknowledgment/</guid><description>推送像快递员送货上门，同步像自己去快递柜取件——IMBoy 消息不丢的真正保证在同步层而非推送层。讲清 IM 的推拉两层设计与 ACK 的真实定位。</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate></item><item><title>erlang_migrate 架构拆解：behaviour 驱动的多数据库迁移引擎</title><link>https://www.imboy.pub/blog/data/erlang-migrate-behaviour-architecture/</link><guid isPermaLink="true">https://www.imboy.pub/blog/data/erlang-migrate-behaviour-architecture/</guid><description>6 个源文件、约 1000 行代码，如何同时支持 PostgreSQL、MySQL、SQLite？behaviour 接口分层、两阶段 dirty 标记、三种锁实现对比——从源码拆解一个简洁的 Erlang 设计范本。</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate></item><item><title>erlang_migrate：为 Erlang/OTP 量身打造的数据库迁移库</title><link>https://www.imboy.pub/blog/data/erlang-migrate-database-migration/</link><guid isPermaLink="true">https://www.imboy.pub/blog/data/erlang-migrate-database-migration/</guid><description>Ruby 有 ActiveRecord Migrations，Go 有 golang-migrate，那 Erlang 呢？像素级对标 golang-migrate v4 的设计：up/down 回滚、dirty 状态保护、分布式锁，PostgreSQL/MySQL/SQLite 三库支持，零运行时依赖。</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>