Как обработать возврат за подписку с помощью PayPal .NET SDK - PullRequest
0 голосов
/ 16 января 2019

В PayPal Docs нет упоминания о возврате за подписку. Но, согласно этому разговору, это возможно. Они предлагают выполнить возврат для продажи с транзакцией ID Соглашения. Для этого я сделал что-то вроде этого:

    var agreementId = "I-FNWSVWCMNWLD"; //this is agreementId of my active subscription.

    var transactionId = Agreement.ListTransactions(APIContext, agreementId, "2018-10-10", "2019-01-16")//I tried to different data.
           .agreement_transaction_list
           .LastOrDefault()
           .transaction_id;
    //here in agreement_transaction_list I get only one transaction
    //with id that is exactly the same as AgreementId which I passed.
    //I think it's wrong.
    var amount = new Amount()
            {
                currency = "USD",
                total = "4"
            };

    var refundRequest = new RefundRequest() {amount = amount };
    var refResult = Sale.Refund(APIContext, transactionId, refundRequest);
    //I catch 404 exception here.

Эта проблема была причиной здесь . Но это было три года назад, и, похоже, с тех пор ничего не изменилось. Я связываюсь с технической поддержкой PayPal по этому вопросу.

BA (Соглашение о выставлении счета) не подлежит возврату, так как это не платеж, это соглашение между сторонами о разрешении платежей в будущем. После создания БА (SetExpressCheckout и DoExpressCheckout) деньги берутся у стороны в согласованный момент, который вызывает идентификатор транзакции. Этот идентификатор может быть возвращен, но, вероятно, целесообразно отменить BA, прежде чем сделать это. Имейте в виду, i- или B- это идентификаторы BA / Token, идентификаторы транзакций без префиксов. Я предлагаю протестировать все это в песочнице, прежде чем вы приведете ее в действие.

Итак, вопрос в том, как получить соответствующий идентификатор транзакции для Соглашения. И как обработать возврат с использованием транзакции с помощью PayPal .NET SDK? Есть ли альтернативы для этой функциональности?

Спасибо.

...