Хоть я и приобрёл шлюз от Saphali Яндекс.Деньги и VISA, MasterCard, но свой не даёт мне покоя.
По прежнему возвращаюсь к его коду, пытаясь заставить его изменить статус заказа после оплаты.
У Saphali отличный шлюз, но он привязан к доменному имени, то есть к сайту, который вы указали при покупке.
И ещё, не понравилась, что в нём нет возможности отката. То есть, если заказ сформирован, то покупателя моментально, редиректом отправляют на яндексовскую форму оплаты, и если покупатель раздумал платить то кнопки "Вернуться на сайт" нет. Браузера же стрелка "Назад", хоть и возвращает покупателя на страницу заказа на сайте, но тут же опять идёт редирект на форму оплаты.
В моём же шлюзе этого нет - и покупатель, если раздумал, всегда может откатиться назад.
Оплата происходит чётко, однако нет изменения статуса на"В обработке". А это важно, так как при смене статуса покупателю со стороны сайта автоматически отправляется письмо, о том что заказ принят в обработку. При отсутствии письма со стороны сайта у покупателя может сложиться впечатление, что он отправил деньги неизвестно куда.
Ну и корзина при смене статуса автоматически обнуляется - это тоже важно.
Собственно Яндекс, сразу после оплаты, посылает на сайт HTTP-уведомление, в котором среди прочих фигурирует номер заказа. Как отловить его я знаю, но как связать это с функцией проверки оплаты и изменения статуса заказа мне неведомо.
Сперва ковырялся с фунцией function check_ipn_response()..., но сейчас прихожу к выводу, что это не то. Она привязана к мерчантам и api конкретной платёжной системы. В этом случае платёжной системе указывается сайт, который получает свой id и прочее. В упрощённой же системе оплаты Яндекса этого нет. Там достаточно только обзавестись кошельком и вписать адрес, на который будут высылаться HTTP-уведомления.
Поэтому теперь возлагаю надежды на функцию
Woocommerce API Callback/
Нашёл код забугорного шлюза использующего эту функцию.
Может что получится, может нет. Не знаю.