Hi, I am using paypal website payment pro on my website, the payment code I use was the one I copied from paypal's official website. Some of my users are being charged twice, however in CRM there is only one entry (which obviously means our code executes once only). I can't figure out, why randomly some of my visitors are being charged twice.. I am attaching the following source code to let you guys have an idea about the code..
$f_name = $_POST['FIRSTNAME'];
$l_name = $_POST['LASTNAME'];
$street = $_POST['STREET'];
$city = $_POST['CITY'];
$state = $_POST['STATE'];
$ZIP = $_POST['ZIP'];
$title = $_POST['title'];
$email = $_POST['email'];
$perm = $_POST['perm'];
$gift_aid = $_POST['gift_aid'];
if($gift_aid == '1'){
$gift_aid = 'true';
}else{
$gift_aid = 'false';
}
if($street == ''){
$street = 'N/A';
}
if($city == ''){
$city = 'N/A';
}
if($ZIP == ''){
$ZIP = '0000';
}
$fulladdress = $_POST['fulladdress'];
$data = 'VERSION=56.0&';
$data .= 'SIGNATURE=AFK.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$data .= '&';
$data .= 'USER=XXXXXXXmyemailaddressXXXXXX';
$data .= '&';
$data .= 'PWD=XXXXXXXXXX';
$data .= '&';
$data .= 'METHOD=DoDirectPayment';
$data .= '&';
$data .= 'PAYMENTACTION=Sale';
$data .= '&';
$data .= 'IPADDRESS='.$_IP;
$data .= '&';
$data .= 'AMT='.$AMT;
$data .= '&';
$data .= 'CURRENCYCODE=GBP';
$data .= '&';
$data .= 'ACCT='.$ACCT;
$data .= '&';
$data .= 'EXPDATE='.$exp_year;
$data .= '&';
$data .= 'CVV2='.$CVV2;
$data .= '&';
$data .= 'FIRSTNAME='.$f_name;
$data .= '&';
$data .= 'LASTNAME='.$l_name;
$data .= '&';
$data .= 'STREET='.$street;
$data .= '&';
$data .= 'CITY='.$city;
$data .= '&';
$data .= 'STATE='.$state;
$data .= '&';
$data .= 'ZIP='.$ZIP;
$data .= '&';
$data .= 'COUNTRYCODE=US';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api-3t.paypal.com/nvp');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
... View more