На нашем веб-сайте мы реализовали функцию регулярных платежей PayPal. Во время оформления подписки пользователи могут проверить автоматическую оплату, которая будет взиматься с них раз в 1 год.
После DoExpressCheckoutPayment
Метод API вызывается и завершается, мы вызываем CreateRecurringPaymentsProfile
Метод API со следующими деталями:
$requestParams=array(
"TOKEN"=>$token,
"PROFILESTARTDATE"=>date("Y-m-d\TH:i:s\Z"),
"DESC"=>"Mimi subscription",
"BILLINGPERIOD"=>"Year",
"BILLINGFREQUENCY"=>"1",
"AMT"=>$subscriptionType->price,
"CURRENCYCODE"=>"GBP",
"PROFILEREFERENCE"=>$transactionId
);
где TOKEN — это значение, возвращаемое из SetExpressCheckout
API метод вызова. Мы установили PROFILESTARTDATE
на сегодняшний день (13 октября 2014 г.), BILLINGPERIOD
в год и BILLINGFREQUENCY
до 1.
Когда мы тестируем этот код, кажется, что все работает нормально, и создается профиль повторяющихся платежей, но интересна следующая деталь. Когда я вхожу в свою учетную запись «песочницы», в профилях повторяющихся платежей я вижу ранее созданный профиль. Вот изображение прилагается:
Почему Следующий платеж дата является сегодняшней датой (мы провели тестирование 13 октября 2014 года), и почему она не установлена на 13 октября 2015 года? Означает ли это, что с пользователя будет взиматься плата 2 раза в 2014 году (один раз при обычной проверке подписки, а затем один раз с использованием механизма повторяющихся платежей).
Спасибо заранее.
Если вы уже выставили счет покупателю за 2014 год с помощью API «DoExpressCheckout», вам необходимо указать «PROFILESTARTDATE» как «13 октября 2015». «PROFILESTARTDATE» указывает, когда будет взиматься плата за профиль, поэтому в вашем случае он должен быть заряжен еще раз, а затем «13 октября 2015 года».
Других решений пока нет …