少額決済アプリ
クレジットカードなしで携帯電話の少額決済で支払い、代金は翌月の携帯電話料金に合算される、通信キャリアの決済サービスのアプリを担当しました。参加した時点でコードは絡み合い、使われていないコードも混じっていたため、画面・決済・通知・配布のコードから把握して整理しました。その上に、店舗で使うバーコード決済と、ホーム画面のウィジェットからすぐ決済に入れる機能を加えました。決済アプリでは、成功・失敗・処理中の状態をユーザーが読み違えると、支払いが済んだのかさえ分からなくなるため、状態表示とエラー処理をあわせて点検しました。
カード登録なしで携帯料金で払う店舗バーコード決済
通信キャリアの少額決済は、加入者がカードを別に登録せず、少額決済の限度額の範囲で携帯料金に合算して支払うサービスです。支払った金額は翌月の携帯料金とあわせて請求され、店舗ではキャリアの会員割引と決済が一度に適用されます。コンビニやパン屋、レストランなどの店舗で使うバーコード決済を新たに加えました。決済画面に入ってバーコードを表示し、今決済できる状態かを示し、できないときに案内するところまで、店舗のレジで素早く終わるよう流れを組みました。

アプリを開かずウィジェットから始める決済の入口
決済アプリは、取り出してから決済画面が表示されるまでの手順が短いほど使いやすくなります。ホーム画面のウィジェットを作り、アプリを直接開かなくてもウィジェットから決済画面へすぐ入れるようにしました。ウィジェットから決済に入るまでの手順を減らすことに集中しました。

成功・失敗・処理中がはっきり分かれる決済状態の表示
少額決済アプリでユーザーが決済状態を読み違えると、支払いが済んだのかどうかが分からなくなります。成功、失敗、処理中が画面ではっきり分かれるよう、画面の流れと例外ケースをあわせて点検しました。通知は配信経路が二つあるため、経路ごとに異なる処理と運用中に起こりうる例外を確かめながら、通知の受信、端末登録、エラーケースを検証しました。

絡んだコードの整理と、テスト配布・エラー追跡の環境
少額決済アプリのコードは、参加した当初は複雑に絡み合い、使われていないコードも混じっていました。保守と機能追加ができる状態にするため、画面・決済・通知・配布に関わるコードをまず把握して整理しました。そのうえでテスト配布とエラー追跡ができる環境を用意し、開発と検収の段階で試験版を配り、エラーを確認する流れを作りました。

この仕事のポイント
絡み合ったコードを、機能を加えられる状態に整理
店舗でのバーコード決済とホーム画面ウィジェットからの決済入口
通知の受信・端末登録の検証と、テスト配布・エラー追跡の環境
インサイト
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…



