我正在尝试使用CreateRecurringPaymentsProfile进行定期付款。
发送的数据:
&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" }
这个问题可能是一个太长的描述或其他问题。也许我错过了一个领域?
我做:
$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);
发送上述信息之前:
$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);
答案 0 :(得分:7)
对于那些收到相同错误但没有达到字节限制的人,请确保说明符合结算协议。
"您必须确保此字段与SetExpressCheckout
请求中包含的相应结算协议说明相符。"
答案 1 :(得分:3)
desc
变量的字符数限制为127.较短的值可以解决问题。
如果字段丢失,您将收到字段格式错误,该错误会告诉您未提供的变量。