Como faço para reembolsar programaticamente usando o Authorize.net em PHP?

Eu estou usando o módulo de pagamento Authorize.net (AIM) com o meu framework cakephp. A funcionalidade de pagamento está funcionando bem. Agora preciso fazer uma Funcionalidade de REEMBOLSO com minha estrutura. Eu verifiquei o seu Api, mas eu não conseguia nada. De acordo com o guia da API, os parâmetros a seguir são necessários. Se eu passei, eles também perguntam a data de atualização. No meu banco de dados, estamos armazenando apenas os últimos 4 dígitos do CC. De qualquer forma eu tento passar todos os 16 dígitos, mas a resposta não é adequada. Só preciso de um exemplo de código PHP para o Authorize.net Refund.

x_type = CREDIT

     

x_trans_id = ID da transação aqui

     

x_card_num = Número total do cartão de crédito ou últimos quatro dígitos apenas aqui

Estou passando seguindo parâmetros

        "x_type"                => 'CREDIT',

        "x_trans_id"            => $x_trans_id,

        "x_card_num"            => '4111111111111111',

       "x_exp_date"            => '' ,

        "x_amount"                => $x_amount,

        'x_test_request' => TRUE 

Agora estou recebendo a seguinte mensagem de erro:

(TESTMODE) É necessário um ID de transação referenciado válido.

2
adicionado editado
Visualizações: 1
Eu atualizei a pergunta pode u por favor, verifique que jere
adicionado o autor AnNaMaLaI, fonte
Os documentos dizem que uma data de expiração não é requerida . Certifique-se de incluir os campos mínimos obrigatórios. Você pode postar o que tentou e o erro retornado pelo Authorize? Pode ser que você só precise incluir a chave x_exp_date , mas deixe em branco.
adicionado o autor jeremyharris, fonte
Tudo parece bom para mim. Você está perdendo uma transação válida, como o erro diz. Provavelmente porque você está no modo de teste. Eu adicionei a resposta, uma vez que responde a esta pergunta :)
adicionado o autor jeremyharris, fonte

1 Respostas

Even though an expiration date is not required, it seems that you still need to pass the key because it's in the list of required Authorize.net keys. Just pass x_exp_date => '' and you should be good!

2
adicionado
Thanx @ Jeremyharris: Foi trabalhado
adicionado o autor AnNaMaLaI, fonte