ALGUEM ME DE ESSA LUZ NO CURL?

22/08/2015

0

PHP

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);
?>
Conceicao Barros

Conceicao Barros

Responder

Post mais votado

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

Anderson Souza
Responder

Mais Posts

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

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

23/08/2015

Anderson Souza

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

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

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

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

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

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

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

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

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

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

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

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

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar