За последние 24 часа нас посетили 19175 программистов и 1634 робота. Сейчас ищут 917 программистов ...

Смена формата даты. Нужна помощь.

Тема в разделе "Прочие вопросы по PHP", создана пользователем illmano, 7 окт 2013.

  1. illmano

    illmano Активный пользователь

    С нами с:
    3 июн 2012
    Сообщения:
    5
    Симпатии:
    0
    Доброго времени суток.
    Начну по порядку.
    В один прекрасный день у меня перестала работать оплата на сайте через Qiwi. Я написал в саппорт и они сказали следующее:
    Я нашел файлы, которые отвечают за функционал оплаты на сайте, но что там поменять, что бы формат даты был правильный я не знаю. Прошу у вас помощи.

    Я так понял дату функция получает от сервера или БД, возможно нужно менять формат даты перед передачей ее в lifetime= . Подскажите как и где это делать!

    Вот ссылки на файлы:
    http://yadi.sk/d/R1sb8wchAYubF
    http://yadi.sk/d/zski8UPuAYun8
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    date('d.F.Y H:i:s', time())
     
  3. illmano

    illmano Активный пользователь

    С нами с:
    3 июн 2012
    Сообщения:
    5
    Симпатии:
    0
    А не подскажете куда вставить этот код?

    Код (Text):
    1. <?php
    2. /***************************************************************************
    3. *                                                                          *
    4. *   (c) 2004 Vladimir V. Kalynyak, Alexey V. Vinokurov, Ilya M. Shalnev    *
    5. *                                                                          *
    6. * This  is  commercial  software,  only  users  who have purchased a valid *
    7. * license  and  accept  to the terms of the  License Agreement can install *
    8. * and use this program.                                                    *
    9. *                                                                          *
    10. ****************************************************************************
    11. * PLEASE READ THE FULL TEXT  OF THE SOFTWARE  LICENSE   AGREEMENT  IN  THE *
    12. * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE.            *
    13. ****************************************************************************/
    14.  
    15. if ( !defined('AREA') ) { die('Access denied'); }
    16.  
    17. function cancelBill($txn_id, &$service) {
    18.     $params = new cancelBill();
    19.     $params->login = LOGIN;
    20.     $params->password = PASSWORD;
    21.     $params->txn = $txn_id;
    22.    
    23.     $res = $service->cancelBill($params);
    24.  
    25.     print($res->cancelBillResult);
    26. }
    27.  
    28. function createBill($data, &$service) {
    29.  
    30.     $params = new createBill();
    31.     $params->login = $data['login'];
    32.     $params->password = $data['password'];
    33.     $params->user = $data['phone'];
    34.     $params->amount = $data['amount'];
    35.     $params->comment = $data['comment'];
    36.     $params->txn = $data['txn_id'];
    37.     $params->lifetime = $data['lifetime'];
    38.    
    39.     $params->alarm = $data['alarm'];
    40.  
    41.     $params->create = $data['create'];
    42.  
    43.     $res = $service->createBill($params);
    44.     $rc = $res->createBillResult;
    45.  
    46.     return $rc;
    47. }
    48. ?>
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    Код (Text):
    1. $params->lifetime = $data['lifetime'];
    наверн место нее это ставим :D
    Код (Text):
    1. $params->lifetime = date('d.F.Y H:i:s', time());
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а может и нет. автор сам не знает, где у него там что
     
  6. illmano

    illmano Активный пользователь

    С нами с:
    3 июн 2012
    Сообщения:
    5
    Симпатии:
    0
    Появилась такая ошибка
    значит не там, или не совсем там или так. Есть соображения?
    Содержание файла IShopServerWSService.php:
    Код (Text):
    1. <?php
    2. class checkBill {
    3.   public $login; // string
    4.   public $password; // string
    5.   public $txn; // string
    6. }
    7.  
    8. class checkBillResponse {
    9.   public $user; // string
    10.   public $amount; // string
    11.   public $date; // string
    12.   public $lifetime; // string
    13.   public $status; // int
    14. }
    15.  
    16. class getBillList {
    17.   public $login; // string
    18.   public $password; // string
    19.   public $dateFrom; // string
    20.   public $dateTo; // string
    21.   public $status; // int
    22. }
    23.  
    24. class getBillListResponse {
    25.   public $txns; // string
    26.   public $count; // int
    27. }
    28.  
    29. class cancelBill {
    30.   public $login; // string
    31.   public $password; // string
    32.   public $txn; // string
    33. }
    34.  
    35. class cancelBillResponse {
    36.   public $cancelBillResult; // int
    37. }
    38.  
    39. class createBill {
    40.   public $login; // string
    41.   public $password; // string
    42.   public $user; // string
    43.   public $amount; // string
    44.   public $comment; // string
    45.   public $txn; // string
    46.   public $lifetime; // string
    47.   public $alarm; // int
    48.   public $create; // boolean
    49. }
    50.  
    51. class createBillResponse {
    52.   public $createBillResult; // int
    53. }
    54.  
    55.  
    56. /**
    57.  * IShopServerWSService class
    58.  *
    59.  *  
    60.  *
    61.  * @author    {author}
    62.  * @copyright {copyright}
    63.  * @package   {package}
    64.  */
    65. class IShopServerWSService extends SoapClient {
    66.  
    67.   private static $classmap = array(
    68.                                     'checkBill' => 'checkBill',
    69.                                     'checkBillResponse' => 'checkBillResponse',
    70.                                     'getBillList' => 'getBillList',
    71.                                     'getBillListResponse' => 'getBillListResponse',
    72.                                     'cancelBill' => 'cancelBill',
    73.                                     'cancelBillResponse' => 'cancelBillResponse',
    74.                                     'createBill' => 'createBill',
    75.                                     'createBillResponse' => 'createBillResponse',
    76.                                    );
    77.  
    78.   public function IShopServerWSService($wsdl = "./payments/qiwi_files/IShopServerWS.wsdl", $options = array()) {
    79.     foreach(self::$classmap as $key => $value) {
    80.       if(!isset($options['classmap'][$key])) {
    81.         $options['classmap'][$key] = $value;
    82.       }
    83.     }
    84.     parent::__construct($wsdl, $options);
    85.   }
    86.  
    87.   /**
    88.    *  
    89.    *
    90.    * @param checkBill $parameters
    91.    * @return checkBillResponse
    92.    */
    93.   public function checkBill(checkBill $parameters) {
    94.     return $this->__soapCall('checkBill', array($parameters),       array(
    95.             'uri' => 'https://ishop.qiwi.ru/services/ishop',
    96.             'soapaction' => ''
    97.            )
    98.       );
    99.   }
    100.  
    101.   /**
    102.    *  
    103.    *
    104.    * @param getBillList $parameters
    105.    * @return getBillListResponse
    106.    */
    107.   public function getBillList(getBillList $parameters) {
    108.     return $this->__soapCall('getBillList', array($parameters),       array(
    109.             'uri' => 'https://ishop.qiwi.ru/services/ishop',
    110.             'soapaction' => ''
    111.            )
    112.       );
    113.   }
    114.  
    115.   /**
    116.    *  
    117.    *
    118.    * @param cancelBill $parameters
    119.    * @return cancelBillResponse
    120.    */
    121.   public function cancelBill(cancelBill $parameters) {
    122.     return $this->__soapCall('cancelBill', array($parameters),       array(
    123.             'uri' => 'https://ishop.qiwi.ru/services/ishop',
    124.             'soapaction' => ''
    125.            )
    126.       );
    127.   }
    128.  
    129.   /**
    130.    *  
    131.    *
    132.    * @param createBill $parameters
    133.    * @return createBillResponse
    134.    */
    135.   public function createBill(createBill $parameters) {
    136.     return $this->__soapCall('createBill', array($parameters),       array(
    137.             'uri' => 'https://ishop.qiwi.ru/services/ishop',
    138.             'soapaction' => ''
    139.            )
    140.       );
    141.   }
    142.  
    143. }
    144.  
    145. ?>
    Добавлено спустя 18 минут 44 секунды:
    На другом форуме мне подсказали
    Код (Text):
    1. $params->lifetime = date( 'd.m.Y H:i:s', strtotime( str_replace( '.', '-', $data['lifetime'] ) ) );
    Правда сказали, что это костыль и лучше это решить до вызова createBill.
    Я правда в этом не понимаю ничего.

    Добавлено спустя 7 минут 20 секунд:
    Забыл написать, что последний вариант работает!
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    %)

    Добавлено спустя 1 минуту 12 секунд:
    работает? или снова выводит:
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    lifetime=2013.10.02 00:10:04
    По документации надо:
    lifetime=02.10.2013 00:10:04
    Собственно сама дата будет выглядеть:
    Код (PHP):
    1. echo date('d.m.Y H:i:s'); 
    Код (PHP):
    1. date( 'd.m.Y H:i:s', strtotime( str_replace( '.', '-', $data['lifetime'] ) ) )
    Эм, а разве будет работать?)
    Что приходит в $data['lifetime'] ?
     
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    ой епт перепутал .. там выводило слово месяца %)