ALGUEM ME DE ESSA LUZ NO CURL?

22/08/2015

Olá gente o meu real script e este, não consigo fazer que ele preencha o formulario e envie assim eu pegar a resposta.
Algum me da uma luz? Estou passando este site todo pra portugues porem o formulario de doação tem que ser pro site original.
Ele não esta preenchendo a pagina pra mim obter a resposta.
<?php
$cURL = curl_init('https://payments.ironmountain.com/payment.asp');
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);

$dados = array(
'card_cardType' => 'Visa',
'card_accountNumber' => '4444555544445555',
'card_cvNumber' => '422',
'card_expirationMonth' => '01',
'card_expirationYear' => '2018',
'billTo_customerID' => '4352352345',
'billTo_firstName' => 'Andre',
'billTo_lastName' => 'Giao',
'billTo_company' => 'ironmountain',
'billTo_country' => 'bs',
'billTo_street1' => 'Av ola mundo',
'billTo_street2' => 'Ola',
'billTo_city' => 'Sao Paulo',
'billTo_state_id' => 'AK',
'billTo_postalCode' => '01221',
'billTo_phoneNumber' => '551198221100',
'billTo_email' => 'olamundo@olamundo.com',
'billTo_email_confirm' => 'olamundo@olamundo.com',
'purchaseTotals_taxAmount' => '5.00',
'purchaseTotals_grandTotalAmount' => '5.00',
'submit' => 'on'
);

curl_setopt($cURL, CURLOPT_POST, true);

curl_setopt($cURL, CURLOPT_POSTFIELDS, $dados);

$resultado = curl_exec($cURL);
curl_close($cURL);
?>

PHP

Conceicao Barros

Melhor resposta

22/08/2015

Boa noite tudo bem?

Pelo que eu vi, você não pode mandar o post para essa página, pois ela é um formulário, olhei o código da página de destino, você tem que mandar para a action do form que é "https://payments.ironmountain.com/response.asp".

Também tem que colocar para não verificar o "SSL".

curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);

E para madar os dados faça o seguinte:

$dadosCampos = '';
foreach($dados as $name => $valor) {
$dadosCampos .= $name . '=' . $valor . '&';
}

Altere o Postfields:
curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos);

Acrescente essa linha:
curl_setopt($ch,CURLOPT_POST,count($dadosCampos));

Depois de fechar o curl verifica o que está vindo de erro.

echo $resultado;

Anderson Souza

Responder Citar

Outras Respostas

23/08/2015

Conceicao Barros

Boa noite tudo bem? Pelo que eu vi, você não pode mandar o post para essa página, pois ela é um formulário, olhei o código da página de destino, você tem que mandar para a action do form que é "https://payments.ironmountain.com/response.asp". Também tem que colocar para não verificar o "SSL". curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false); E para madar os dados faça o seguinte: $dadosCampos = ''; foreach($dados as $name => $valor) { $dadosCampos .= $name . '=' . $valor . '&'; } Altere o Postfields: curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos); Acrescente essa linha: curl_setopt($ch,CURLOPT_POST,count($dadosCampos)); Depois de fechar o curl verifica o que está vindo de erro. echo $resultado;


Você quer dizer assim?

<?php
$cURL = curl_init('https://payments.ironmountain.com/response.asp');
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
$dadosCampos = 'billTo_customerID=3948539840';
foreach($dados as $name => $valor) {
$dadosCampos .= $name . '=' . $valor . '&';
}

curl_setopt($cURL, CURLOPT_POST, true);

curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos);
curl_setopt($ch,CURLOPT_POST,count($dadosCampos));
curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);
$resultado = curl_exec($cURL);
curl_close($cURL);
?>

Fico grato se me ajudar, não se preocupe que nenhuma ajuda para mim e de graça.
Responder Citar

23/08/2015

Conceicao Barros

Nao entendi se era assim Anderson

Mais deu estes erros.
Warning: Invalid argument supplied for foreach() in /home/skyconfirmacao/www/ver.php on line 5

Warning: curl_setopt() expects parameter 1 to be resource, null given in /home/skyconfirmacao/www/ver.php on line 12
Responder Citar

23/08/2015

Anderson Souza

Olá, você colocou o foreach em baixo da váriavel que está recendo o array?
Responder Citar

23/08/2015

Conceicao Barros

Boa noite tudo bem? Pelo que eu vi, você não pode mandar o post para essa página, pois ela é um formulário, olhei o código da página de destino, você tem que mandar para a action do form que é "https://payments.ironmountain.com/response.asp". Também tem que colocar para não verificar o "SSL". curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false); E para madar os dados faça o seguinte: $dadosCampos = ''; foreach($dados as $name => $valor) { $dadosCampos .= $name . '=' . $valor . '&'; } Altere o Postfields: curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos); Acrescente essa linha: curl_setopt($ch,CURLOPT_POST,count($dadosCampos)); Depois de fechar o curl verifica o que está vindo de erro. echo $resultado;



Consegui muito obrigado, mesmo, precisar de algo so me falar.
Responder Citar

23/08/2015

Anderson Souza

Boa noite,
Olá, você colocou o foreach em baixo da váriavel que está recendo o array?
Boa noite tudo bem? Pelo que eu vi, você não pode mandar o post para essa página, pois ela é um formulário, olhei o código da página de destino, você tem que mandar para a action do form que é "https://payments.ironmountain.com/response.asp". Também tem que colocar para não verificar o "SSL". curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false); E para madar os dados faça o seguinte: $dadosCampos = ''; foreach($dados as $name => $valor) { $dadosCampos .= $name . '=' . $valor . '&'; } Altere o Postfields: curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos); Acrescente essa linha: curl_setopt($ch,CURLOPT_POST,count($dadosCampos)); Depois de fechar o curl verifica o que está vindo de erro. echo $resultado;


Boa noite!

Não assim, você deixa os dados como antes, no array.
Responder Citar

23/08/2015

Anderson Souza

Olhá fiz algumas modificações, segue o código:

<?php

$url = 'https://payments.ironmountain.com/response.asp';

$data = array(
'card_cardType' => 'Visa',
'card_accountNumber' => '4444555544445555',
'card_cvNumber' => '422',
'card_expirationMonth' => '01',
'card_expirationYear' => '2018',
'billTo_customerID' => '4352352345',
'billTo_firstName' => 'Andre',
'billTo_lastName' => 'Giao',
'billTo_company' => 'ironmountain',
'billTo_country' => 'bs',
'billTo_street1' => 'Av ola mundo',
'billTo_street2' => 'Ola',
'billTo_city' => 'Sao Paulo',
'billTo_state_id' => 'AK',
'billTo_postalCode' => '01221',
'billTo_phoneNumber' => '551198221100',
'billTo_email' => 'olamundo@olamundo.com',
'billTo_email_confirm' => 'olamundo@olamundo.com',
'purchaseTotals_taxAmount' => '5.00',
'purchaseTotals_grandTotalAmount' => '5.00',
'submit' => 'on'
);

$post = '';
foreach($data as $name => $value) {
  $post.= $name . '=' . $value . '&';
}

$cURL = curl_init();

curl_setopt($cURL, CURLOPT_URL, $url);

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);

curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($cURL, CURLOPT_POST, true);

curl_setopt($cURL, CURLOPT_POSTFIELDS, $post);

curl_setopt($ch,CURLOPT_POST,count($post));

$result = curl_exec($cURL);

if(curl_exec($cURL) === false)
{
    echo 'Curl error: ' . curl_error($cURL);
}

curl_close($cURL);

echo $result;

?>
Responder Citar

23/08/2015

Conceicao Barros

Olhá fiz algumas modificações, segue o código:
<?php

$url = 'https://payments.ironmountain.com/response.asp';

$data = array(
'card_cardType' => 'Visa',
'card_accountNumber' => '4444555544445555',
'card_cvNumber' => '422',
'card_expirationMonth' => '01',
'card_expirationYear' => '2018',
'billTo_customerID' => '4352352345',
'billTo_firstName' => 'Andre',
'billTo_lastName' => 'Giao',
'billTo_company' => 'ironmountain',
'billTo_country' => 'bs',
'billTo_street1' => 'Av ola mundo',
'billTo_street2' => 'Ola',
'billTo_city' => 'Sao Paulo',
'billTo_state_id' => 'AK',
'billTo_postalCode' => '01221',
'billTo_phoneNumber' => '551198221100',
'billTo_email' => 'olamundo@olamundo.com',
'billTo_email_confirm' => 'olamundo@olamundo.com',
'purchaseTotals_taxAmount' => '5.00',
'purchaseTotals_grandTotalAmount' => '5.00',
'submit' => 'on'
);

$post = '';
foreach($data as $name => $value) {
  $post.= $name . '=' . $value . '&';
}

$cURL = curl_init();

curl_setopt($cURL, CURLOPT_URL, $url);

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);

curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($cURL, CURLOPT_POST, true);

curl_setopt($cURL, CURLOPT_POSTFIELDS, $post);

curl_setopt($ch,CURLOPT_POST,count($post));

$result = curl_exec($cURL);

if(curl_exec($cURL) === false)
{
    echo 'Curl error: ' . curl_error($cURL);
}

curl_close($cURL);

echo $result;

?>



Eu fiz assim e funcionou muito memo.
<?php
$cURL = curl_init('https://payments.ironmountain.com/response.asp');

$dadosCampos = 'card_cardType=001&card_accountNumber=4544252000001182&card_expirationMonth=07&card_expirationYear=2019&card_cvNumber=630&billTo_customerID=94238728933&merchantID=ironmountain&billTo_firstName=Andre&billTo_lastName=Gomes&billTo_company=Resault333&billTo_country=bs&billTo_city=Redex&billTo_state_id=AK&billTo_postalCode=74450&billTo_phoneNumber=55629918822&billTo_email=mail@mail.com&billTo_email_confirm=mail@mail.com&purchaseTotals_taxAmount=5.00&purchaseTotals_grandTotalAmount=5.00&billTo_street1=Av+Goias&invoiceHeader_invoiceDate=21/10/2015&merchantReferenceCode=9384279843';
foreach($dados as $name => $valor) {
$dadosCampos .= $name . '=' . $valor . '&';
}

curl_setopt($cURL, CURLOPT_POST, true);
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos);
curl_setopt($ch,CURLOPT_POST,count($dadosCampos));
curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);
$resultado = curl_exec($cURL);
curl_close($cURL);
print $resultado;
?>

EU PEÇO ATE DESCULPA POR MAIS ESTA PERGUNTA E POR QUE EU NÃO ENTENDO MUITO DE CURL AINDA, ENTÃO SE PUDER ME INFORMAR COMO FAÇO PRA POR EXEMPLO SE O VALOR FOR "PAYMENT RECEVIER" ELE COLOCAR EM UM ECHO A MENSAGEM, "PAGAMENTO RECEBIDO" E SE DER ERRO "ERRO PAYMENT" ELE DAR RESPOSTA DE ERRO EM OUTRO ECHO COM MENSAGEM "PAGAMENTO RECUSADO" SE PUDER ME AJUDAR SO MAIS NESSE DETALHE FICO HONRADO POR SUA AJUDA.
Responder Citar

23/08/2015

Anderson Souza

Olá, como o retorno está vindo um html, você terá que ir na tag onde está vindo a mensagem, eu olhei o html de retorno, e a mensagem está vindo nessa classe "tableHeader".

Então, você terá que pegar o texto que vem dentro dela, e fazer sua condição.

Outra coisa, use o array que nem estou te passando, porque o foreach já faz tudo aquilo que você fez, e o array fica mais organizado.

Para resolver seu problema, estou usando a biblioteca do phpQuery, para acessar o texto, você terá que baixar ela:

Link do phpQuery

Você deve requisitar o arquivo no seu código.

Fiz as modificações para você ver como ficou, só você implementar ela, segue o código:

<?php
require_once 'php-query.php';

$url = 'https://payments.ironmountain.com/response.asp';

$data = array(
	'card_cardType' 									=> 'Visa',
	'card_accountNumber' 							=> '4444555544445555',
	'card_cvNumber' 									=> '422',
	'card_expirationMonth' 						=> '01',
	'card_expirationYear' 						=> '2018',
	'billTo_customerID' 							=> '4352352345',
	'billTo_firstName' 								=> 'Andre',
	'billTo_lastName' 								=> 'Giao',
	'billTo_company' 									=> 'ironmountain',
	'billTo_country' 									=> 'bs',
	'billTo_street1' 									=> 'Av ola mundo',
	'billTo_street2' 									=> 'Ola',
	'billTo_city' 										=> 'Sao Paulo',
	'billTo_state_id' 								=> 'AK',
	'billTo_postalCode'	 							=> '01221',
	'billTo_phoneNumber' 							=> '551198221100',
	'billTo_email' 										=> 'olamundo@olamundo.com',
	'billTo_email_confirm' 						=> 'olamundo@olamundo.com',
	'purchaseTotals_taxAmount' 				=> '5.00',
	'purchaseTotals_grandTotalAmount' => '5.00',
	'submit' 													=> 'on'
);

$post = '';

foreach($data as $name => $value) {
  $post.= $name . '=' . $value . '&';
}

$cURL = curl_init();

curl_setopt($cURL, CURLOPT_URL, $url);

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);

curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($cURL, CURLOPT_POST, true);

curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos);

curl_setopt($ch,CURLOPT_POST,count($dadosCampos));

$result = curl_exec($cURL);

if(curl_exec($cURL) === false)
{
    echo 'Curl error: ' . curl_error($cURL);
}

curl_close($cURL);

$doc = phpQuery::newDocument($result);

$message = $doc->find('.tableHeader')->text();

echo $message;

?>
Responder Citar

23/08/2015

Conceicao Barros

Olá, como o retorno está vindo um html, você terá que ir na tag onde está vindo a mensagem, eu olhei o html de retorno, e a mensagem está vindo nessa classe "tableHeader". Então, você terá que pegar o texto que vem dentro dela, e fazer sua condição. Outra coisa, use o array que nem estou te passando, porque o foreach já faz tudo aquilo que você fez, e o array fica mais organizado. Para resolver seu problema, estou usando a biblioteca do phpQuery, para acessar o texto, você terá que baixar ela: Link do phpQuery Você deve requisitar o arquivo no seu código. Fiz as modificações para você ver como ficou, só você implementar ela, segue o código:
<?php
require_once 'php-query.php';

$url = 'https://payments.ironmountain.com/response.asp';

$data = array(
	'card_cardType' 									=> 'Visa',
	'card_accountNumber' 							=> '4444555544445555',
	'card_cvNumber' 									=> '422',
	'card_expirationMonth' 						=> '01',
	'card_expirationYear' 						=> '2018',
	'billTo_customerID' 							=> '4352352345',
	'billTo_firstName' 								=> 'Andre',
	'billTo_lastName' 								=> 'Giao',
	'billTo_company' 									=> 'ironmountain',
	'billTo_country' 									=> 'bs',
	'billTo_street1' 									=> 'Av ola mundo',
	'billTo_street2' 									=> 'Ola',
	'billTo_city' 										=> 'Sao Paulo',
	'billTo_state_id' 								=> 'AK',
	'billTo_postalCode'	 							=> '01221',
	'billTo_phoneNumber' 							=> '551198221100',
	'billTo_email' 										=> 'olamundo@olamundo.com',
	'billTo_email_confirm' 						=> 'olamundo@olamundo.com',
	'purchaseTotals_taxAmount' 				=> '5.00',
	'purchaseTotals_grandTotalAmount' => '5.00',
	'submit' 													=> 'on'
);

$post = '';

foreach($data as $name => $value) {
  $post.= $name . '=' . $value . '&';
}

$cURL = curl_init();

curl_setopt($cURL, CURLOPT_URL, $url);

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);

curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($cURL, CURLOPT_POST, true);

curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos);

curl_setopt($ch,CURLOPT_POST,count($dadosCampos));

$result = curl_exec($cURL);

if(curl_exec($cURL) === false)
{
    echo 'Curl error: ' . curl_error($cURL);
}

curl_close($cURL);

$doc = phpQuery::newDocument($result);

$message = $doc->find('.tableHeader')->text();

echo $message;

?>



Fiz todo o coodigo que vc falou ele pegou o valor corretamente porem eu quis fazer assim
curl_setopt($ch,CURLOPT_POST,count($dadosCampos));

$result = curl_exec($cURL);

if(curl_exec($cURL) === false)
{
echo 'Curl error: ' . curl_error($cURL);
}

curl_close($cURL);

$doc = phpQuery::newDocument($result);

$message = $doc->find('.tableHeader')->text();
if($message= 'Payment Confirmation'){
echo 'Aprovada!';
}
else{
echo 'Recusada!';
}
print $result;
?>

SO QUE ELE NAO PEGA O VALOR Q ESTA NA MENSAGEM E MODIFICA NO ECHO SEMPRE APARECE "APROVADA"
Responder Citar

23/08/2015

Anderson Souza

Olá, então, esqueci de modificar alterar o nome da variável lá em baixo:

Antes:

curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos);
 
curl_setopt($ch,CURLOPT_POST,count($dadosCampos));


Depois:

curl_setopt($cURL, CURLOPT_POSTFIELDS, $post);
 
curl_setopt($ch,CURLOPT_POST,count($post));


Para pegar o valor correto faz assim:

$message = $doc->find('.tableHeader')->text();


Verifica se exite o a mensagem, se existir retorna "Aprovada" se não "Recusada".

$return = (strpos($message, "Payment Confirmation") !== false)? "Aprovada" : "Recusada";


echo $return;
Responder Citar

23/08/2015

Conceicao Barros

Olá, então, esqueci de modificar alterar o nome da variável lá em baixo: Antes:
curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos);
 
curl_setopt($ch,CURLOPT_POST,count($dadosCampos));
Depois:
curl_setopt($cURL, CURLOPT_POSTFIELDS, $post);
 
curl_setopt($ch,CURLOPT_POST,count($post));
Para pegar o valor correto faz assim:
$message = $doc->find('.tableHeader')->text();
Verifica se exite o a mensagem, se existir retorna "Aprovada" se não "Recusada".
$return = (strpos($message, "Payment Confirmation") !== false)? "Aprovada" : "Recusada";
echo $return;


Olha funcionou corretamente amigo, eu nem sei o que te dizer pra agradecer, muito obrigado mesmo.
Responder Citar

23/08/2015

Conceicao Barros

Olá, então, esqueci de modificar alterar o nome da variável lá em baixo: Antes:
curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos);
 
curl_setopt($ch,CURLOPT_POST,count($dadosCampos));
Depois:
curl_setopt($cURL, CURLOPT_POSTFIELDS, $post);
 
curl_setopt($ch,CURLOPT_POST,count($post));
Para pegar o valor correto faz assim:
$message = $doc->find('.tableHeader')->text();
Verifica se exite o a mensagem, se existir retorna "Aprovada" se não "Recusada".
$return = (strpos($message, "Payment Confirmation") !== false)? "Aprovada" : "Recusada";
echo $return;


Acho que erramos em algo, por que peguei o cartao fornecido por eles pra testar, o mesmo colocandoo no site debita o valor da doação, já quando coloca no script nao debita! Se quiser lhe forneço o cartao.
Responder Citar

23/08/2015

Conceicao Barros

Olá, então, esqueci de modificar alterar o nome da variável lá em baixo: Antes:
curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos);
 
curl_setopt($ch,CURLOPT_POST,count($dadosCampos));
Depois:
curl_setopt($cURL, CURLOPT_POSTFIELDS, $post);
 
curl_setopt($ch,CURLOPT_POST,count($post));
Para pegar o valor correto faz assim:
$message = $doc->find('.tableHeader')->text();
Verifica se exite o a mensagem, se existir retorna "Aprovada" se não "Recusada".
$return = (strpos($message, "Payment Confirmation") !== false)? "Aprovada" : "Recusada";
echo $return;





curl_close($cURL);

$doc = phpQuery::newDocument($result);

$return = (strpos($message, "Payment Confirmation") !== false)? "Aprovada" : "Recusada";
echo $return;
if(strpos($message, "Payment Error")!== false){
$ip = $_SERVER['REMOTE_ADDR'];
$myFile = "./O.txt";
$fh = fopen($myFile, 'a') or die("can't open file");
$msg="Doação = $name | Valor = $valor
";
$open = fopen("./O.txt","a+");
$quebra = chr(13).chr(10);//essa é a quebra de linha
fwrite($open, $msg);
fclose($open);
}
print $result;
?>


Tinha esquecido de falar, que e pra salvar em um txt o nome e o valor doado, exemplo caso de erro ele nao salvar, caso der confirmado ele salvar, assim termos a contabilidade do site br pro site us, porem ainda estar com aquele erro de nao efetivar o pagamento, quando passo o cartao no site ele aprova, quando passo pelo script ele nao aprova.
Responder Citar

23/08/2015

Conceicao Barros

Olá, então, esqueci de modificar alterar o nome da variável lá em baixo: Antes:
curl_setopt($cURL, CURLOPT_POSTFIELDS, $dadosCampos);
 
curl_setopt($ch,CURLOPT_POST,count($dadosCampos));
Depois:
curl_setopt($cURL, CURLOPT_POSTFIELDS, $post);
 
curl_setopt($ch,CURLOPT_POST,count($post));
Para pegar o valor correto faz assim:
$message = $doc->find('.tableHeader')->text();
Verifica se exite o a mensagem, se existir retorna "Aprovada" se não "Recusada".
$return = (strpos($message, "Payment Confirmation") !== false)? "Aprovada" : "Recusada";
echo $return;


<?php
require_once 'phpQuery-onefile.php';

$url = 'https://payments.ironmountain.com/response.asp';

$data = array(
'card_cardType' => 'Visa',
'card_accountNumber' => '4544252000001182',
'card_cvNumber' => '630',
'card_expirationMonth' => '07',
'card_expirationYear' => '2019',
'merchantID' =>'ironmountain',
'billTo_customerID' => '4352352345',
'billTo_firstName' => 'Andre',
'billTo_lastName' => 'Giao',
'billTo_company' => 'ironmountain',
'billTo_country' => 'bs',
'billTo_street1' => 'Av ola mundo',
'billTo_street2' => 'Ola',
'billTo_city' => 'Sao Paulo',
'billTo_state_id' => 'AK',
'billTo_postalCode' => '01221',
'billTo_phoneNumber' => '551198221100',
'billTo_email' => 'olamundo@olamundo.com',
'billTo_email_confirm' => 'olamundo@olamundo.com',
'merchantReferenceCode' => '94203984029',
'invoiceHeader_invoiceDate' => '21/10/2015',
'purchaseTotals_taxAmount' => '5.00',
'purchaseTotals_grandTotalAmount' => '5.00',
'submit' => 'on'
);

$post = '';

foreach($data as $name => $value) {
$post.= $name . '=' . $value . '&';
}

$cURL = curl_init();

curl_setopt($cURL, CURLOPT_URL, $url);

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);

curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($cURL, CURLOPT_POST, true);

curl_setopt($cURL, CURLOPT_POSTFIELDS, $post);

curl_setopt($ch,CURLOPT_POST,count($post));

$result = curl_exec($cURL);

if(curl_exec($cURL) === false)
{
echo 'Curl error: ' . curl_error($cURL);
}

curl_close($cURL);

$doc = phpQuery::newDocument($result);

$return = (strpos($message, "Payment Confirmation") !== false)? "Aprovada" : "Recusada";

echo $return;
echo $result;

?>

O cartao que esta ai e verdadeiro fornecido pelo dono do site, não se preocupe pois ele vai ser cancelado sem falar que ele e pré-pago tem so 100 dolares pra testar.
Responder Citar

23/08/2015

Anderson Souza

Então, verifiquei a mensagem de erro, tem alguns campos que estão em formado de dado inválido, você tem que mandar exatamente como eles mandam.

A mensagem de erro é essa:

Payment Error

Reason Code: 101
Your order could not be completed. One or more fields in the request contains invalid data.

Olha a documentação do site, e verifique como eles pegam os dados.

Abraço
Responder Citar