ошибка 10009 при возврате авторизованной транзакции - PullRequest
2 голосов
/ 02 марта 2012

У меня есть транзакция PayPal, которая авторизуется, а затем фиксируется. Я хочу вернуть его, используя .net код refundtransaction У меня следующая ошибка: You can not refund this type of transaction

Public Function RefundTransactionCode(ByVal refundType__1 As String, ByVal transactionId As String, ByVal amount As String, ByVal note As String, ByRef resp As RefundTransactionResponseType) As AckCodeType
        Dim caller As New CallerServices()

        Dim profile As IAPIProfile = ProfileFactory.createSignatureAPIProfile()
        '
        '            WARNING: Do not embed plaintext credentials in your application code.
        '            Doing so is insecure and against best practices.
        '            Your API credentials must be handled securely. Please consider
        '            encrypting them for use in any production environment, and ensure
        '            that only authorized individuals may view or modify them.
        '            


        ' Set up your API credentials, PayPal end point, and API version.
        profile.APIUsername = AppSettings("APIUsername")
        profile.APIPassword = AppSettings("APIPassword")
        profile.APISignature = AppSettings("APISignature")
        profile.Environment = AppSettings("Environment")
        caller.APIProfile = profile
        ' Create the request object.
        Dim concreteRequest As New RefundTransactionRequestType()
        concreteRequest.Version = "51.0"

        ' Add request-specific fields to the request.
        ' If (amount IsNot Nothing AndAlso amount.Length > 0) AndAlso (refundType__1.Equals("Partial")) Then

        Dim amtType As New BasicAmountType()
        amtType.Value = amount
        amtType.currencyID = CurrencyCodeType.CAD
        concreteRequest.Amount = amtType
        concreteRequest.RefundType = RefundType.Full
        ' Else
        'MsgBox(0)
        'concreteRequest.RefundType = RefundType.Full
        ' End If
        concreteRequest.RefundTypeSpecified = True
        concreteRequest.TransactionID = transactionId
        concreteRequest.Memo = note

        ' Execute the API operation and obtain the response.
        '   Dim pp_response As New RefundTransactionResponseType()
        resp = DirectCast(caller.[Call]("RefundTransaction", concreteRequest), RefundTransactionResponseType)
        Return resp.Ack

    End Function

1 Ответ

1 голос
/ 03 марта 2012

Я бы посоветовал найти транзакцию в вашей учетной записи PayPal и посмотреть на нее.Вероятно, это Авторизация, Заказ, Ожидание транзакции или какой-либо другой тип транзакции.

Вы можете возместить только захват / продажу, отправленный на учетную запись, которую вы отправляете API от имени*, который еще не был возвращен.


*

  1. Сторонние вызовы API, где вы используете «субъект» в параметрах API вместе с вашимимя пользователя, пароль и подпись / сертификат, отправляете ли вы вызовы API от имени учетной записи субъекта.
  2. Первоначальные вызовы API - это когда вы не отправляете тему и используете только своего собственного пользователя API, pass,и сиг / сертификат
...