skn писал(а):
По моему в OSMP протоколе нет
Код:
command=cancel
А MPSRequest это общий класс для всех протоколов модуля MPS
В обновленной версии ОСМП от QiWi есть отмена платежа:
http://www.qiwi.ua/ua/business/provider ... a_prov.docКод:
5 Пример запроса на отмену платежа
Для отмены платежа, система генерирует запрос следующего вида:
https://service.someprv.ru:8443/payment_app.cgi?command=cancel&txn_id=1234569& cancel_txn_id=1234567&txn_date=20050815010101&account=4957835959&sum=10.45
Запрос содержит переменные:
command=cancel – запрос на отмену платежа
txn_id=1234569 – внутренний номер отменяющего платежа в системе QIWI
cancel_txn_id=1234567 – внутренний номер отменяемого платежа в системе QIWI
txn_date=20050815010101 – дата отправки отменяющего платежа в системе QIWI
cancel_txn_date=20050815120133 – дата отправки отменяемого платежа в системе QIWI
account=4957835959 – идентификатор абонента в информационной системе провайдера
sum=10.45 – сумма, указанная в отменяемой транзакции
Пример ответа:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<osmp_txn_id>1234569</osmp_txn_id>
<cancel_txn_id>1234567</cancel_txn_id>
<prv_txn>2017</prv_txn>
<sum>10.45</sum>
<result>0</result>
<comment>OK</comment>
</response>
Возврат result=0 свидетельствует о подтверждении и успешном завершении отмены транзакции.
Возврат result=90 свидетельствует о том, что отмена еще не подтверждена. Система отправит повторный запрос через некоторое время.
Возврат result=7 об отказе провайдера в отмене платежа.
Если провайдер не подтвердит отмену платежа в течение 7 суток, платеж автоматически будет считаться отмененным.
Поле prv_txn ответа содержит номер отменяющей транзакции на стороне провайдера.
В необязательном поле comment содержится служебный комментарий.
Но наверное проще делать, как в MPS при сверке с реестром:
1) удалить платеж на договоре
2) поменять статус транзацкии в MPS на "удален".