PR

【10/14】技玉ガチャ画像 #4311

kouho opened this at 2025-10-10T09:48:30; closed

Description

opened by kouho at 2025-10-10T09:48:30; updated 2025-11-10T10:19:11

概要

https://docs.google.com/spreadsheets/d/1PNPX-w4M65C9ZKwZgyFhk2A-g9IdhjbmRvKDF71z1Tc/edit?gid=795307172#gid=795307172

Gesoten版でガチャが引けない問題にも対応

問題の概要:
Gesoten版で技玉ガチャ実行時にショップページに戻りガチャを引くことができない。
上記を解消しても、技玉ガチャ結果画面でゲソコインの表示がNANになってしまう、技玉ガチャ演出が連続で再生される問題が発生。

対応内容:
shop_payment.inc shop_select.inc
技玉ガチャ購入時に secret_keyが空に。
lib/ajax/shop_payment.inc で技玉ガチャの購入時にsecret_keyが空のときにキャッシュから決済結果を復元して、決済JSONを返す

SubFunc_gesoten.inc, Shop_payment.php, Shop_payment_gesoten.php
コイン残高を整数化して表示崩れの防止

修正の詳細

Gesotenの技玉ガチャ購入後に決済結果が取得できずショップへリダイレクトされる症状を、決済完了APIが常に購入結果JSONを返すよう整備し、結果をメモリキャッシュからフォールバック取得できるようにして解消。

lib/SubFunc/SubFunc_gesoten.inc:548
新規 S_gesoten_GetShopPaymentResult() を追加し、メモキャッシュから決済結果を復元、need_coin/last_coin を整数初期化。既存のアイテム・ガチャ・酒場購入処理でもコイン残高を int キャストして null によるフロント崩れを防止。

lib/ajax/shop_payment.inc:11
Gesoten決済完了時、secret_key が空や 0 の場合にフォールバック結果を即返却。技玉ガチャ用 skillball_shop_item_numbers を判定し、専用のガチャ購入API (S_gesoten_PurchaseGachaBilling) を実行、結果を secret_key 付きで返却・redirect_url を除いたデータを注文単位/ユーザー単位にキャッシュして再取得を可能化。

lib/ajax/shop_select.inc:3
技玉ガチャ選択時に月次技玉ガチャを検証非対象アイテムは従来どおり。

lib/models/Shop_payment.php:114
/ lib/models/Shop_payment_gesoten.php:66
決済結果の need_coin/last_coin を存在チェック後に整数化し、外部APIがコイン値を返さないケースでもUIが0表示で安定。

各所でキャッシュ書き込み(lib/ajax/shop_payment.inc:41 など)を追加し、再アクセス時に結果が取得できずリダイレクトする問題を防止。

Comment

#42773 by kouho at 2025-10-10T09:48:39; updated 2025-10-10T09:48:39

@wada
レビューお願いいたします

Comment

#42819 by wada at 2025-10-15T10:02:13; updated 2025-10-15T10:02:13

@kouho
確認OKです。

wada add_label at 2025-10-15T10:02:16: 和田 LGTM

Comment

#42849 by kouho at 2025-10-17T13:53:09; updated 2025-10-17T13:53:09

@wada
今回の対応必要なのがゲソてん版なのでヤマダ側処理は対応しなくて大丈夫かと思います。
> 32~38行目のヤマダ側処理も対応しなくて良いですか?

kouho merge at 2025-10-17T17:49:19: 【10/14】技玉ガチャ画像
kouho close at 2025-10-17T17:49:19: Close
wada delete_branch at 2025-11-10T10:19:11: skill_ball_1017

commit comment

#309 by wada at 2025-10-16T15:39:56; lib/models/Shop_payment_gesoten.php / old:None new:57
8f70c12cab816c9039a4c463c1d7307276d2e31c

@kouho
この更新は他の購入処理にも影響があるため、他の購入処理の動作確認と本番確認もしてほしいです。

commit comment

#310 by wada at 2025-10-16T15:44:09; lib/ajax/shop_payment.inc / old:None new:11
8f70c12cab816c9039a4c463c1d7307276d2e31c

@kouho
32~38行目のヤマダ側処理も対応しなくて良いですか?

Commit range

basea63884e7a035a83d188d9d749078849c2d87f821
head8f70c12cab816c9039a4c463c1d7307276d2e31c
base branchjolly/jr-web:master
head branchjolly/jr-web:skill_ball_1017

View commits

Commit details are loaded from Git when a dynamic archive server is running, or can be embedded with --include-commits.
Files changed5 filesView patch
statusfile
modifiedlib/SubFunc/SubFunc_gesoten.inc
modifiedlib/ajax/shop_payment.inc
modifiedlib/conf/class/ItemPackConfig.class.php
modifiedlib/models/Shop_payment.php
modifiedlib/models/Shop_payment_gesoten.php
Patch body is stored as a separate file to keep this page lightweight.

Review comment

#309 by wada at 2025-10-16T15:39:56; lib/models/Shop_payment_gesoten.php / old:None new:57
8f70c12cab816c9039a4c463c1d7307276d2e31c

@kouho
この更新は他の購入処理にも影響があるため、他の購入処理の動作確認と本番確認もしてほしいです。

Review comment

#310 by wada at 2025-10-16T15:44:09; lib/ajax/shop_payment.inc / old:None new:11
8f70c12cab816c9039a4c463c1d7307276d2e31c

@kouho
32~38行目のヤマダ側処理も対応しなくて良いですか?