Я бы хотел спросить здесь, поскольку на форумах x есть вопрос (опубликован 7 мая), но, похоже, на него еще нет ответа.
Я использую здесь PHP и в качестве теста для получения токена и обработки транзакции вот мой код:
$nvps = array();
$nvps["VERSION"] = "69.0";
$nvps["METHOD"] = "SetExpressCheckout";
$nvps["PAYMENTREQUEST_0_PAYMENTACTION"] = "Sale";
$nvps["PAYMENTREQUEST_0_AMT"] = "1.00";
$nvps["PAYMENTREQUEST_0_CURRENCYCODE"] = "GBP";
$nvps["PAYMENTREQUEST_0_ITEMAMT"] = "1.00";
$nvps["L_BILLINGTYPE0"] = 'RecurringPayments';
$nvps["L_BILLINGAGREEMENTDESCRIPTION0"] = "the subscription";
$nvps["L_PAYMENTREQUEST_0_NUMBER0"] = 1;
$nvps["L_PAYMENTREQUEST_0_NAME0"]= "subscription";
$nvps["L_PAYMENTREQUEST_0_AMT0"]= 1.00;
$nvps["L_PAYMENTREQUEST_0_QTY0"]= 1;
$nvps["L_PAYMENTREQUEST_0_ITEMCATEGORY0"] = "Digital";
$nvps["REQCONFIRMSHIPPING"] = "0";
$nvps["NOSHIPPING"] = "1";
Я получаю ответ обратно в порядке, и в этом ответе есть обычные вещи:
TOKEN = EC-87478432UK0557216
BILLINGAGREEMENTACCEPTEDSTATUS = 1
CHECKOUTSTATUS = PaymentActionNotInitiated
Затем я изменяю ответ и отправляю его обратно в PayPal. Здесь я думаю, что мне нужно создать профиль:
$response["METHOD"] = "CreateRecurringPaymentsProfile";
$response["PROFILESTARTDATE"] = "2011-7-7T0:0:0";
$response["BILLINGPERIOD"] = "Month";
$response["BILLINGFREQUENCY"] = "4";
$response = RunAPICall($response); // Send the API call to PayPal.
Но тогда я получаю это:
TIMESTAMP = 2011-07-07T21:29:15Z
CORRELATIONID = 59260374116e4
ACK = Failure
VERSION = 69.0
BUILD = 1907759
L_ERRORCODE0 = 11581
L_SHORTMESSAGE0 = Invalid Data
L_LONGMESSAGE0 = Profile description is invalid
L_SEVERITYCODE0 = Error
An error occurred.
Моя последняя попытка (перед тем как сдаться) была такой:
$nvps = array();
$nvps["VERSION"] = "69.0";
$nvps["METHOD"] = "CreateRecurringPaymentsProfile";
$nvps["TOKEN"] = $response["TOKEN"];
$nvps["paymentType"] = urlencode('Authorization');
$nvps["RETURNURL"] = $script_url . "/modules/paypal/success.inc.php";
$nvps["CANCELURL"] = $script_url . "/modules/paypal/failure.inc.php";
$nvps["paymentAmount"] = urlencode("1.00");
$nvps["currencyID"] = urlencode("GBP"); // or other currency code ('GBP', 'EUR', 'JPY', 'CAD', 'AUD')
$nvps["startDate"] = urlencode("2011-07-08T00:00:00");
$nvps["billingPeriod"] = urlencode("Month"); // or "Day", "Week", "SemiMonth", "Year"
$nvps["billingFreq"] = urlencode("12");
$response = RunAPICall($nvps); // Send the API call to PayPal.
Теперь я понял:
TIMESTAMP = 2011-07-08T11:07:33Z
CORRELATIONID = 1e97153fed038
ACK = Failure
L_ERRORCODE0 = 10001
L_SHORTMESSAGE0 = Internal Error
L_LONGMESSAGE0 = Timeout processing request
An error occurred.
Не очень полезно ......
Так еще это сделал? Буду признателен за некоторое руководство!
Обратите внимание, я думаю, что это отличается от обычной настройки периодических подписок (хотя я могу ошибаться).