Chalyn 是一个面向日本市场的二手物品回收变现平台(リセールアプリ)。用户把闲置的品牌包袋、服饰、球鞋、游戏机、Apple 设备、金券等交给平台,经「査定」(估价)后直接换成现金,再提现到银行账户。项目覆盖 PHP Webman API、React + Ant Design 管理后台、Next.js 官网落地页与 Flutter App 四端。
在线地址: chalyn.com
业务链路
- 选品类下单 —— 首页按品牌包袋、品牌服饰、品牌球鞋、游戏机、Apple 制品、移动终端、PC、平板、外币、金券・商品券、化妆品(未开封)、一般服饰等品类分流;顶部还有「本日買取できる総額」当日收购额度计数器。
- 査定(估价) —— 提交物品后先出「一次査定」价格,货到仓库后出「最終査定」价格,用户需在期限内确认,逾期自动承认。
- 发货 —— 提供两种方式:
集荷依頼(平台上门取件,可代备包装箱)或自分で発送(用户自行寄送)。 - 入库检品到结算 —— 状态机为 発送待ち → 進行中 → 完了 / キャンセル;通知中心按节点推送「商品が到着しました」「最終査定額の承認が必要です」「販売完了」等消息。
- 钱包提现 —— 成交额进入 ウォレット(売上金),用户发起 振込申請 提现到已登记的 口座情報。
- 邀请裂变 —— 每位用户有专属 招待コード,可分享到 X / LINE / Facebook;邀请人得 ¥500 估价加成券,被邀请人得 ¥1,000 券(满 3,000 円可用)。
技术架构
| 子项目 | 技术栈 |
|---|---|
chalyn_backend | PHP 8.1 + Webman(Workerman),MySQL 8.0 + Redis,JWT + Firebase 认证 |
chalyn-admin | React 18 + TypeScript + Vite + Ant Design 5,Zustand + TanStack Query,react-i18next(简中 / 繁中 / 日文) |
chalyn-home | Next.js 15 + React 19,承接邀请码 / 优惠券 / 订单详情落地页,AWS Amplify 托管 |
chalyn-app | Flutter(独立团队维护) |
- 后端分为
appapi(面向日本 APP 用户)与adminapi(管理后台)两个模块 - 部署:AWS ECS + ALB,基础设施用 Terraform 管理,Docker 容器化
- 接口契约:响应对象中已声明的属性必须保留字段节点,即使值为
null也要返回该 key,禁止在 Resource、分页资源或序列化链路里过滤空值
国际化约束
appapi 面向日本本土用户,所有 APP 可见文案强制走 ja_JP 国际化输出,禁止中文硬编码 —— 范围包括接口返回、异常、校验错误、Resource 展示字段、推送通知、系统消息、邮件、订单备注、状态原因、资金流水描述,以及队列、事件、定时任务或 adminapi 写入 DB 后会被 APP 读取的内容。
resource/translations/{ja_JP,en,zh_CN}/messages.php 三份语言文件必须保持相同的注释结构、行数、key 顺序与 key 集合,且不得出现重复 key。回归验证:
# 国际化静态检查:疑似中文文案、三语言缺失 key、key 集合一致性、重复 key
php webman appapi:scenario-test --scenario=i18n_static --base-url=http://127.0.0.1 --user-id=382
# 发版前后端 API 全面回归(含 null_fields 场景)
php webman appapi:scenario-test --scenario=full
App 截图
首页(品类选择)、取引履歴(交易记录)、お知らせ(通知中心)



マイページ(个人中心)、ウォレット(钱包与提现)


友だち招待(邀请活动)、SNSアカウント連携(第三方账号绑定)


発送詳細(发货详情)、取引(商品)詳細(查定变更确认)


管理后台
chalyn-admin 是 React 18 + Ant Design 5 的单体后台,左侧导航覆盖用户、优惠券、营销活动、品类(分类 / 品牌 / 型号 / 外币币种)、订单(含待退货订单、邮件通知、法人收购订单、企业用户)、提现管理、评价反馈、客服中心、销售渠道、管理员与操作日志、新闻 / 节日 / 文章管理。
下面几屏是各模块的形态。截图里的用户手机号已做模糊处理。

用户管理 —— 列表形态承载了注册期的关键状态:认证状态、邀请码、第三方账号(Google / Apple / LINE 或未绑定)、使用阶段与注销状态;筛选条件按手机号、认证状态、使用阶段、注销状态和注册日期 / 月份组合。每行可下钻到「用户情报」与「用户轨迹」。

优惠券管理 —— 一张券的可配置维度分三组:使用规则(加成 ¥ 固定额或百分比、是否有门槛、每人上限、是否上不封顶、适用范围、有效天数)、发放配置(发放对象为全部用户 / 指定用户 / 新用户,单人上限、剩余库存)、状态(启停开关)。行内可直接「编辑 / 发券 / 发放记录」。截图中的 SNS 限定、朋友招待、初回限定三类券分别对应上面的裂变拉新链路。

分类管理 —— 回收品类的控制台。每个一级品类独立配置定价模式(普通估价 / 先着再估价)、回收物品能力(是否支持数量、是否手动选择型号)、角标类型(如「买取强化」)、启用开关,并能下钻二 / 三级子分类排序与关联品牌。截图里「時計」处于停用态、「ブランドバッグ / ブランドアパレル / 携帯端末」带角标,说明这套配置是按品类灰度放量的。

外币币种管理 —— 外币回收渠道的定价底座。每种货币配有图标、日文名称、汇率比例(截图中均为 70%)、排序值,以及一个「模板物品 ID」指向估价模板;USD 标记为「常用」。这样加一种货币只需配一条记录,不用改代码。

订单管理 —— 一单三段金额是这条业务的关键设计:系统初估总额、用户期望总额(可为空)、用户展示总额(最终对用户生效的金额)。配合业务类型(外币回收)、订单状态(已完成 / 待寄送)、提交方式(郵寄 / 上门取货)和「导出上门取货订单」,把线上下单与线下集荷串起来。

客服中心 —— 左侧会话列表按未处理 / 处理中 / 已处理分流,右侧工作台可在会话内直接关联交易、看到该笔交易的物品、初估价与状态,并按日文模板回复。截图中的手机号与用户 ID 已做模糊处理,可见的日文回复涉及集荷时间窗口、运费承担规则与包装要求。