Я настраиваю приложение с помощью адаптивных платежей Paypal.
В настоящее время я выполняю вызов 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);
Однако эта дата может отличаться в зависимости от часового пояса сервера, отправляющего запрос.
У кого-нибудь есть идеи, как избежать проблем?
Изменить с помощью Bounty:
По состоянию на 15 декабря мы столкнулись с этим как с ошибкой. Мы используем время UTC, и как только наступает новый день в UTC, платежи начинают получать сбои.
Я использую приведенный выше код в следующем месте:
$preapprovalRequest->startingDate = $startDate;
$preapprovalRequest->endingDate = $endDate;
Что мне нужно, чтобы эта работа работала?
Редактировать 2:
Да, часовой пояс настроен как UTC, мы сделали это намеренно, чтобы вся информация о времени в нашей базе данных сохранялась без часового пояса.
По сути, я пытаюсь выяснить, как указать, что дата, которую я отправляю в Paypal, указана в UTC, а не в каком часовом поясе они находятся.
Редактировать 3:
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_APPreapproval
Есть API, и он говорит следующее
Начальная дата и конечная дата могут быть в смещении eiter Zulu или GMT
форматы. как в следующих соответствующих примерах:
2010-09-10Z
2010-09-10T17: 24: 03.874-07: 00
По сути, мне нужен приведенный выше код, чтобы вывести что-то подобное, указав, что я использую UTC ...