Paypal Preapproval Дата начала часовой пояс?

Я настраиваю приложение с помощью 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);

Однако эта дата может отличаться в зависимости от часового пояса сервера, отправляющего запрос.

У кого-нибудь есть идеи о том, как обеспечить отсутствие проблем?

Редактировать w/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 offset   форматы. как в следующих примерах:   2010-09-10Z   2010-09-10T17: 24: 03.874-07: 00

По существу мне нужен приведенный выше код, чтобы вывести что-то вроде этого, указав, что я использую UTC ...

6

2 ответы

The api documentation says it uses GMT or Zulu time over the wire, and expects it to have a final 'Z' to indicate this (consistent with ISO 8601).

Дополнительные примечания о работе API PreApproval

     <�Ол>   
  • Преобладающие ограничения являются аддитивными; таким образом, например, если вы укажете предварительное одобрение, которое разрешает платежи только по пятницам и в 13-й день месяца, предварительное одобрение будет действовать только в пятницу 13 месяцев в течение указанного периода времени.
  •   
  • StartDate и endDate могут быть в форматах eiter Zulu или GMT offset. как в следующих примерах:
  •   </Ол>      

    2010-09-10Z [ПРИМЕЧАНИЕ: ЭТО ЗУЛУ]

         

    2010-09-10T17: 24: 03.874-07: 00 [ПРИМЕЧАНИЕ: НАСТОЯЩЕЕ ВРЕМЯ ОТКЛОНЕНИЯ]

Самым безопасным для использования является, вероятно, следующее:

$startingDate = gmdate('Y-m-d\Z', $startingDateTimestamp);

Однако вы должны убедиться, что установлен правильный часовой пояс вашего сервера (и время!). Вам также может потребоваться установить часовой пояс отдельно в приложении PHP , используя

7
добавлено
Благодарим за подробную информацию, использовали другое решение, поэтому отметили его как принятое решение, но это, вероятно, будет лучшим ответом для пользователей, которые найдут этот вопрос, чтобы дать вам щедрость!
добавлено автор Brett Allen, источник
@AequitarumCustos: Что за черт? Просто отметьте это решение. Не имеет смысла присуждать награду одному и решать другие.
добавлено автор Mike Purcell, источник

Функции времени PHP основаны на системном времени ( http://us.php.net/ ручной/EN/intro.datetime.php ). Вы уверены, что ваша система настроена на использование времени UTC? Вы можете проверить следующее:

[email protected] ~/projects/config $ -> date
Thu Dec 15 23:29:09 UTC 2011

Обратите внимание на UTC в ответе. Если ваша система настроена на какой-то другой часовой пояс, это может быть вашей проблемой, если вам нужно установить часовой пояс в UTC, попробуйте:

$ rm -f /etc/localtime
$ ln -s /usr/share/zoneinfo/UTC /etc/localtime

Также убедитесь, что ваше системное время исправлено с использованием Network Time Protocol:

$ ntpdate -b pool.ntp.org

-- Редактировать --

Основываясь на ваших изменениях, похоже, что они ожидают время либо в Zulu (append Z), либо в GMT со смещением (более сложным), попробуйте следующее:

$preapprovalRequest->startingDate = $startDate . 'Z';
$preapprovalRequest->endingDate = $endDate . 'Z';
2
добавлено
Да, наша система настроена на использование времени UTC, чтобы помочь всем пользователям правильно отображать время.
добавлено автор Brett Allen, источник
Добавлена ​​ссылка API и информация о часовом поясе из документа API. Я не понимаю, как использовать то, что они там положили.
добавлено автор Brett Allen, источник
Добавление Z отлично работает, спасибо!
добавлено автор Brett Allen, источник
@AequitarumCustos: Вы проверили документы API, чтобы узнать, есть ли вызов $ preapprovalRequest-> timezone ?
добавлено автор Mike Purcell, источник
@AequitarumCustos: Обновлено сообщение ...
добавлено автор Mike Purcell, источник
@AequitarumCustos: Это сработало?
добавлено автор Mike Purcell, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp