Google Wallet: хранение идентификаторов заказов в базе данных с помощью PHP
При создании подписки я регистрирую orderID
который создается в базе данных, намереваясь ссылаться на него позже для обработки отмены postback
, Моя отмена postback
кажется, никогда не работает, однако.
мой postback
сохраняет первоначальный заказ при его создании, а затем пытается отозвать его при отмене и обновить базу данных, но orderID
немного отличается и не может обновиться должным образом.
Это orderID
который был сохранен непосредственно из декодированного JWT в базе данных:
GWDG_S.886160e8-49b6-4f92-b485-9787c4cb4c06.0..0
Это orderID
который отправляется в соответствии с firebug в консоли при отмене подписки:
GWDG_S.886160e8-49b6-4f92-b485-9787c4cb4c06.0.
Это orderID
который отправляется по электронной почте пользователю, отменяющему подписку:
GWDG_S.886160e8-49b6-4f92-b485-9787c4cb4c06
Я не уверен, что здесь происходит. Как мне вести учет этих изменений?
Любой вклад приветствуется! Спасибо!
2 ответа
Не могу воспроизвести... в моей песочнице:
Покупка по подписке
На тестовой веб-странице:
Кошелек песочницы покупателя:
Данные обратной передачи
Это отладочное письмо, которое я отправляю себе, показывая покупку и последующие отмены обратной передачи
Покупатели получают квитанции с "увеличивающимся" номером транзакции, который вы видите (если только я не исправлен Googler) каждый раз, когда их подписка продлевается -
например, 5-го обновления [...]6a6c4.0..5
Пример отмены обратной передачи за период времени:
Похоже, вам нужно нормализовать orderID до последнего формата. Для этого конкретного случая подойдет следующее регулярное выражение.
preg_match('([^\.]+\.[^\.])\.', $orderID, $matches);
$orderID = $matches[1];