QR 支付应用新建
我们为在门店扫二维码付款的便捷支付应用打造了核心支付流程。用户在这款应用里开通预付费支付工具,在商户扫二维码付款,积分和优惠券也在同一应用里使用。这个项目曾在原型阶段中断过一次,这次以支付功能为中心简化后重新上线。在支付应用里,同一请求发送两次,或失败的支付看起来像成功,立刻就是金钱问题。工作覆盖从扫描二维码、发起支付、解析服务器响应到显示成功或失败的整个支付流程及其异常处理。
从扫码到支付完成,不中断的一条流程
二维码支付应用的付款按以下顺序进行:扫码、发起支付、接收服务器响应,然后显示成功或失败。我们把这些步骤串成一条流程,让用户在界面上就能知道自己处在哪一步。界面构成的标准是:用户不应分不清支付是仍在进行还是已经结束。

先考虑重复、延迟与取消的支付请求
支付请求并不总是返回正常响应。同一请求发送两次、失败响应、网络延迟、用户在支付中途取消,这些情况都与支付流程一起设计。在发起支付和确认结果的过程中,让请求、响应与界面状态保持一致,确保用户看不到错误的支付状态。

把格式特殊的服务器响应转为应用状态的解析规则
支付服务器返回的响应采用一种不同于常见数据格式的特殊格式。我们编写了读取这些响应的处理,并为每种响应情况对应好应用应进入的状态。不仅是正常支付,遇到错误码、缺失字段或格式损坏的响应时,应用也不会卡住,而是进入预先定好的界面。

让两个平台遵循同一支付标准的协作
同一支付服务在另一个平台上的应用由另一位开发者负责。我们向这位开发者讲解了支付逻辑和服务器响应的处理方式,并协助其实现。平台不同,支付政策与异常处理标准也必须一致,否则同一笔支付会在不同应用里显示出不同结果。

项目亮点
从扫描二维码到显示支付成功或失败的完整支付流程
针对重复请求、失败响应、网络延迟和用户取消的异常处理
解析格式特殊的服务器响应,并处理错误码与缺失字段
洞察
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…



