Я настраиваю приложение с помощью Paypal Adaptive Payments.
В настоящее время я реализую вызов Preapproval, и в спецификации указано, что StartDate не может быть раньше сегодняшнего дня.
Имея это в виду ... по какому часовому поясу они проверяют это по?
В API SDK есть это в примере:
$currDate = getdate();
$startDate = $currDate['year'].'-'.$currDate['mon'].'-'.$currDate['mday'];
$startDate = strtotime($startDate);
$startDate = date('Y-m-d', mktime(0,0,0,date('m',$startDate),date('d',$startDate),date('Y',$startDate)));
$endDate = add_date($startDate, 1);
Однако эта дата может отличаться в зависимости от часового пояса сервера, отправляющего запрос .
У кого-нибудь есть идеи, как гарантировать отсутствие проблем?
Редактировать с наградой:
По состоянию на 15 декабря мы столкнулись с этим как с ошибкой. Мы используем время в формате UTC, и как только наступает новый день в формате UTC, платежи начинают сбоить.
Я использую приведенный выше код в следующем месте:
$preapprovalRequest->startingDate = $startDate;
$preapprovalRequest->endingDate = $endDate;
Что мне нужно, чтобы эта работа работала?
Редактировать 2:
Да, часовой пояс настроен как UTC, мы сделали это намеренно, чтобы все время информация в нашей базе данных хранится без часового пояса.
По сути, я пытаюсь понять, как указать, что дата, которую я отправляю в Paypal, находится в UTC, а не в каком-либо часовом поясе, в котором они находятся.
Редактировать 3:
Существует API, и он говорит следующее
Начальная дата и конечная дата могут быть в eiter Zulu или смещении по Гринвичу { {1}} форматы.как в следующих примерах: 2010-09-10Z 2010-09-10T17: 24: 03.874-07: 00
По сути, мне нужен приведенный выше код, чтобы вывести что-то подобное указав, что я использую UTC ...