2016-12-21 8 views
0

Мы используем PayPlow PayPal API для постоянных платежей, это дает нам проблему.Ошибка API PayPal PayFlow

Мы отправляем сумму $ 29 в API, но в журнале PayPal отображается только $ 1. Когда мы попросили поддержку PayPal, они сказали, что вы отправляете 1 доллар.

Пожалуйста, помогите нам. Ниже приведен код, который мы имею установку:

<?php 

$payflow_partner = 'PayPal'; 
$payflow_vender  = 'xxxxxxxxxxxxx'; 
$payflow_user  = 'xxxxxxxxxxxx'; 
$payflow_pwd  = 'XXXXXXXXX'; 
$payflow_url  = 'https://pilot-payflowpro.paypal.com'; 

$first_name  = 'First Name'; 
$last_name  = 'Last Name'; 
$profile_name = $first_name.$last_name; 
$plan_amount = 29.00; 
$card_number = '4111111111111111'; 
$expiry_month = '05'; 
$expiry_year = '21'; 
$expiry   = $expiry_month.$expiry_year; 
$user_email  = '[email protected]'; 
$start_date  = '01202017';     

$post_list = 'TRXTYPE=R&TENDER=C&PARTNER='.$payflow_partner.'&VENDOR='.$payflow_vender.'&USER='.$payflow_user.'&PWD='.$payflow_pwd.'&ACTION=A&PROFILENAME='.$profile_name.'&AMT='.$plan_amount.'&CURRENCY=USD&ACCT='.$card_number.'&EXPDATE='.$expiry.'&START='.$start_date.'&PAYPERIOD=MONT&TERM=0&EMAIL='.$user_email.'&OPTIONALTRX=A&OPTIONALTRXAMT='.$plan_amount.'&COMMENT1=First-time-customer&STREET=sector-7-malviya-nagar&ZIP=302017&CITY=jaipur&STATE=rajasthan&COUNTRY=india&FIRSTNAME='.$first_name.'&MIDDLENAME='.$last_name.'&LASTNAME='.$last_name; 

$headers = array(); 
$headers[] = "Content-Type: text/namevalue"; //or maybe text/xml 
$headers[] = "X-VPS-Timeout: 3000"; 
$headers[] = "X-VPS-VIT-OS-Name: Linux"; // Name of your OS 
$headers[] = "X-VPS-VIT-OS-Version: RHEL 4"; // OS Version 
$headers[] = "X-VPS-VIT-Client-Type: PHP/cURL"; // What you are using 
$headers[] = "X-VPS-VIT-Client-Version: 0.01"; // For your info 
$headers[] = "X-VPS-VIT-Client-Architecture: x86"; // For your info 
$headers[] = "X-VPS-VIT-Client-Certification-Id:13fda2433fc2123d8b191d2d011b7fdc"; 
$headers[] = "X-VPS-VIT-Integration-Product: MyApplication"; // For your info, would populate with application name 
$headers[] = "X-VPS-VIT-Integration-Version: 0.01"; // Application version 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $payflow_url); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_HEADER, 1); // tells curl to include headers in response 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return into a variable 
curl_setopt($ch, CURLOPT_TIMEOUT, 45); // times out after 45 secs 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // this line makes it work under https 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_list); //adding POST data 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); //verifies ssl certificate 
curl_setopt($ch, CURLOPT_FORBID_REUSE, TRUE); //forces closure of connection when done 
curl_setopt($ch, CURLOPT_POST, 1); //data sent as POST 
$result = curl_exec($ch); 
$headers = curl_getinfo($ch); 
curl_close($ch); 

echo $result; 

ответ

1

В Ваших почтовых данных, которые вы отправляете эти два значения:

AMT='.$plan_amount 
OPTIONALTRXAMT='.$plan_amount 

documentation состояние PayPal, что OPTIONALTRXAMT следует использовать только тогда, когда OPTIONALTRX=S, что он не ваш случай.

В документации также указано, что Amount игнорируется при OPTIONALTRX=A, что и является тем, что вы делаете.

Примечание: не указывайте количество, когда OPTIONALTRX = A. Сумма игнорируется.

Итак, удалите необязательные параметры.

+0

Спасибо Sikander ... Ваше решение работает как шарм .. Большое вам спасибо ... –

 Смежные вопросы

  • Нет связанных вопросов^_^