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