遗留支付应用现代化
我们长期负责一款在手机上处理刷卡支付及多种支付方式的支付应用的功能开发与维护。在与同一基础上运行的另一款支付应用并行运营的同时,把这款应用自身的需求反映到界面与支付流程中。对支付服务来说,反复确认既有支付持续正确运转,比做得快更重要。工作涵盖支付状态处理、相机证件提交、多语言提示与应用错误管理。
成功、失败与等待一眼分明的支付结果
这款手机支付应用的核心流程是支付请求、认证、结果确认与错误响应处理。在保持这条流程稳定的同时,让支付结果清楚地分成成功、失败与等待三种状态显示。若把等待误读为失败、把失败误读为成功,用户就会重复支付,或以为已付款而离开。

从权限到重试都不中断的相机证件提交
这款手机支付应用让用户用相机拍摄证件,直接在应用内提交。我们在实现和维护这条流程时,一并处理运营中可能出现的异常:请求相机权限、确认拍摄结果、上传失败与重试。准则是:无论在哪一步停下,用户都知道下一步该做什么。

逐个语言重读的支付与认证错误提示文字
这款手机支付应用用户群体广泛,界面与提示文字以多种语言提供。在应用多语言界面与文字时,支付与认证环节的错误提示被单独挑出来确认。标准不在于翻译是否正确,而在于用户读完提示后能否立刻知道下一步该做什么。

在同一基础的两款支付应用间区分共性错误与个别错误的应对
运行中的手机支付应用发生的崩溃,借助错误收集工具进行监控,并从可能演变为故障的地方起按优先级修复。这款支付应用与同一基础上运行的另一款支付应用并行运营,两款应用共有的问题与仅在一方出现的问题分开处理。支付服务不容许缺陷,运营期间崩溃率始终保持在极低水平。

项目亮点
清楚区分成功、失败与等待的支付状态显示
兼顾权限、上传失败与重试的相机证件提交
在同一基础的两款支付应用间区分共性与个别错误的质量管理
洞察
GA4 client_storage: 'none'은 정말 쿠키를 막을까?
두 달 전 이 블로그에 「GA4 쿠키 없이 쓰기」라는 글을 썼습니다. clientstorage: 'none' 으로 쿠키 저장을 끄고, 자체 분석이 쓰던 익명 ID 를 clientid 로 넘기면 쿠키 0개로 GA4 를 쓸 수 있다는 내…
GA4 Measurement Protocol: gtag.js 없이 서버에서 이벤트 보내기
랜딩 페이지의 전송량을 파일 단위로 쪼개 보다가, 가장 큰 파일이 우리 코드가 아니라는 것을 알았습니다. Google Analytics 의 gtag.js 였고, 방문 한 번에 176KB 를 받고 있었습니다. 페이지 전체가 1,094K…
중소 제조업 AI 도입 순서: DX를 먼저 끝내야 할까?
공장을 가진 중소·중견 제조기업 16만여 곳 가운데 스마트공장을 도입한 곳은 19.5%입니다. 회사가 작을수록 이 비율은 더 떨어집니다. 중소벤처기업부가 2025년 4월에 낸 제1차 스마트제조혁신 실태조사 결과입니다. 그림: 기업 규…
Next.js loading.tsx와 404: 버튼이 화면보다 먼저 살아나게 하기
관리 화면 왼쪽 위에 사이드바를 접고 펴는 ☰ 버튼이 있습니다. 폭 하나 바꾸는 버튼인데, 대시보드에서 누르면 2초 넘게 아무 반응이 없었습니다. 레이아웃만 바꾸는 일이 왜 이렇게 오래 걸리는지부터 들여다봤습니다. Next.js 16…



