Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RafaelSirens

Estorno Paypal API

Recommended Posts

Boa noite pessoal, estou passando por uma dificuldade com a API do paypal para estorno total do valor, acredito estar fazendo tudo certo, porem não aparece no paypal o estorno que foi feito.

Segue o codigo.

<?php 	

if ($_GET['check'] == '976AR12154HF97643QL1825645') {	
$IDdaTransacao = $_GET['token'];

require_once "nbproject/config.inc.php";

		$nvp = array(  
	        'USER'		=> $user,
	        'PWD'		=> $pswd,
	        'SIGNATURE'     => $signature ,
			'METHOD'	=> 'RefundTransaction',
			'VERSION'	=> '94', 
			'TRANSACTIONID'		=> $IDdaTransacao,
			'REFUNDTYPE'		=> 'Full'			
		);
	
	$curl = curl_init();
	if($sandbox){
		$api = 'https://api-3t.sandbox.paypal.com/nvp';
	}else{
		$api = 'https://api-3t.paypal.com/nvp';
	}
	
	curl_setopt( $curl , CURLOPT_URL , $api);
	curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER , false );
	curl_setopt( $curl , CURLOPT_RETURNTRANSFER , 1 );
	curl_setopt( $curl , CURLOPT_POST , 1 );
	curl_setopt( $curl , CURLOPT_POSTFIELDS , http_build_query( $nvp ) );
	$response = urldecode( curl_exec( $curl ) ); 	
	$responseNvp = array();	 

	if ( preg_match_all( '/(?<name>[^\=]+)\=(?<value>[^&]+)&?/' , $response , $matches ) ) {
		foreach ( $matches[ 'name' ] as $offset => $name ) {
			$responseNvp[ $name ] = $matches[ 'value' ][ $offset ];
		}
	}
	// echo "<pre>";	print_r($responseNvp);	echo "</pre>";	die;

	if ( isset( $responseNvp['REFUNDTRANSACTIONID'] ) && isset( $responseNvp['ACK'] ) ) {
		if ($responseNvp['ACK'] == 'Success' ) {
			
			$Retorno['idestorno'] = $responseNvp['REFUNDTRANSACTIONID'];
			$Retorno['valorestornado'] = $responseNvp['TOTALREFUNDEDAMOUNT'];
			$Retorno['moeda'] = $responseNvp['CURRENCYCODE'];
			$Retorno['idrelacao'] = $responseNvp['CORRELATIONID'];
			if ($responseNvp['ACK']=='Success') $Retorno['statustransacao'] = "Valor Estornado";
			if ($responseNvp['ACK']!='Success') $Retorno['statustransacao'] = "Valor Não Estornado";
			  
		} else {
			$Retorno['erro'] = "Transacao nao encontrada";
		}
	} else {
		$Retorno['erro'] = "Transacao nao encontrada";
	}	

	$Resposta['resposta'] = $Retorno;

	curl_close( $curl );
	die(json_encode($Resposta));


}
?>

O meu $_GET['token'], vai com o IDTransection que esta salvo no banco. algo como: EC-1BP42544M55929905

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.