Я сделал это, используя 2 разных подхода, ни один из которых не соответствует требованиям обработки кнопки «Назад» и очистки корзины, если они выполнят заказ, но на практике они сработали для меня без каких-либо жалоб.
Первый подход : очистить корзину и указать способ ее восстановления с помощью строки запроса в параметре запроса «CheckCartUrl» Google Checkout. Затем, когда клиент нажимает кнопку редактирования корзины, его корзина восстанавливается. Кнопка возврата, однако, не работает в этой ситуации.
Второй подход : не очищать корзину, но (опционально) сделать ее доступной только для чтения перед перенаправлением в Google Checkout. Мы делаем это так, чтобы запись корзины не могла быть изменена, пока они находятся в Google Checkout. Если они затем щелкают назад или редактируют корзину, НОВАЯ корзина создается на нашем сайте (клонируется из оригинала) каждый раз. Это обеспечивает поддержку для кнопки «Назад», но предоставит клиенту очищенную корзину только в том случае, если заказ был выполнен, и мы обработали запрос, прежде чем он вернется на сайт.
Делать корзину доступной только для чтения необязательно - мы делаем это, чтобы сохранить запись корзины в соответствии с результирующим заказом из Google Checkout. Если вам это не нужно, это так же просто, как не очистить корзину.
Второй подход помог мне в последние несколько лет без каких-либо жалоб со стороны клиентов. Я предпочел бы, чтобы клиент мог нажать кнопку «Назад», чем беспокоиться о том, что корзина не опустела сама после проверки с помощью Google.