문제

I'm trying to do a recurring payment using CreateRecurringPaymentsProfile.

data sent:

&TOKEN=EC-9VR75992DL646470M
&SUBSCRIBERNAME=Mr.Subscriber 
&PROFILESTARTDATE=2013-07-22T00:00:00Z
&DESC=Our+Monthly+Membership+Renewal+Plan%3A+You+payment+of+%240.1+will+be+deducted+monthly+from+your+account.+Cancel+anytime+after+6+months.+Additional+terms+and+conditions+can+be+found+in+the+Membership+Agreement+at+website.com.
&MAXFAILEDPAYMENTS=3
&AUTOBILLAMT=AddToNextBilling
&BILLINGPERIOD=Month
&BILLINGFREQUENCY=1
&AMT=0.10
&TOTALBILLINGCYCLES=
&CURRENCYCODE=USD" 


["TIMESTAMP"]=> string(20) "2013-06-22T11:50:36Z" 
["CORRELATIONID"]=> string(13) "9011114f8316f" 
["ACK"]=> string(7) "Failure" 
["VERSION"]=> string(2) "64" 
["BUILD"]=> string(7) "6202528" 
["L_ERRORCODE0"]=> string(5) "11581" 
["L_SHORTMESSAGE0"]=> string(12) "Invalid Data" 
["L_LONGMESSAGE0"]=> string(30) "Profile description is invalid" 
["L_SEVERITYCODE0"]=> string(5) "Error" }

could the problem be a too long description or something else. Maybe a field i'm missing?

I do:

$nvpstr = "";
$nvpstr .= "&VERSION=64.0";
$nvpstr .= "&TOKEN=".$_GET['token'];
$nvpstr .= "&PAYMENTACTION=Authorization";
$nvpstr .= "&PAYERID=".$_SESSION['PAYERID'];
$nvpstr .= "&AMT=".$_SESSION['recurringInitAmount'];
$nvpstr .= "&CURRENCYCODE=USD";
$nvpstr .= "&L_BILLINGTYPE0=RecurringPayments";
$nvpstr .= "&L_BILLINGAGREEMENTDESCRIPTION0=".$_SESSION['recurringDesc'];
$resArray = hash_call("DoExpressCheckoutPayment", $nvpstr); 

before sending the above info like:

$nvpstr = "";
$nvpstr .= "&TOKEN=".$_GET['token'];
$nvpstr .= "&SUBSCRIBERNAME=Mr.Subscriber ";
$nvpstr .= "&PROFILESTARTDATE=".date("Y-m-d", mktime(0, 0, 0, date("m", time())+1, date("d", time()), date("Y", time())))."T00:00:00Z";
$nvpstr .= "&DESC=".$_SESSION['recurringDesc'];
$nvpstr .= "&MAXFAILEDPAYMENTS=3";
$nvpstr .= "&AUTOBILLAMT=AddToNextBilling";
$nvpstr .= "&BILLINGPERIOD=Month";
$nvpstr .= "&BILLINGFREQUENCY=1";
$nvpstr .= "&AMT=".$_SESSION['recurringInstallment'];
$nvpstr .= "&TOTALBILLINGCYCLES=".$_SESSION['recurringInstallmentCycles'];
$nvpstr .= "&CURRENCYCODE=USD";
$resArray = hash_call("CreateRecurringPaymentsProfile", $nvpstr);
도움이 되었습니까?

해결책 2

The desc variable has a character limit of 127. A shorter value should resolve the problem.

If a field was missing you would get a field format error which tells you the variable that wasn't provided.

다른 팁

For those receiving the same error but not hitting the byte limit make sure the description matches the billing agreement.

"You must ensure that this field matches the corresponding billing agreement description included in the SetExpressCheckout request."

https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/CreateRecurringPaymentsProfile_API_Operation_NVP/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top