php Хелпердляслужбы$ b $bдоставкиСдэк,обновляеттолькоПВЗ,Безсинхронизациигородов
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php Хелпердляслужбы$ b $bдоставкиСдэк,обновляеттолькоПВЗ,Безсинхронизациигородов相关的知识,希望对你有一定的参考价值。
<?php
namespace Artmix\Classes\Helpers;
use COption;
\cmodule::includeModule('sale');
class SdekHelper
{
static $MODULE_ID = "ipol.sdek";
public static $tableName = 'ipol_sdekcities';
private function zajsonit($handle)
{
if (LANG_CHARSET !== 'UTF-8') {
if (is_array($handle))
foreach ($handle as $key => $val) {
unset($handle[$key]);
$key = self::zajsonit($key);
$handle[$key] = self::zajsonit($val);
}
else
$handle = $GLOBALS['APPLICATION']->ConvertCharset($handle, LANG_CHARSET, 'UTF-8');
}
return $handle;
}
private function getBySId($sid)
{
global $DB;
$sid = $DB->ForSql($sid);
$strSql =
"SELECT * " .
"FROM " . self::$tableName . " " .
"WHERE SDEK_ID = '" . $sid . "'";
$res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
return $res->Fetch();
}
private function sendToSDEK($XML = false, $where = false, $get = false)
{
if (!$where) return false;
$where .= '.php' . (($get) ? "?" . $get : '');
$ch = curl_init();
if ($where == 'new_orders.php' && COption::GetOptionString(self::$MODULE_ID, 'crazyHosters', 'N') != 'Y')
curl_setopt($ch, CURLOPT_URL, 'http://proxy.apiship.ru/cdek/new_orders.php');
else {
if (COption::GetOptionString(self::$MODULE_ID, 'useOldServer', 'N') == 'Y') {
curl_setopt($ch, CURLOPT_URL, 'http://gw.edostavka.ru/' . $where);
curl_setopt($ch, CURLOPT_PORT, 11443);
} else
curl_setopt($ch, CURLOPT_URL, 'http://int.cdek.ru/' . $where);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
if ($XML) {
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, self::zajsonit(array('xml_request' => $XML)));
}
$result = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return array(
'code' => $code,
'result' => $result
);
}
public static function UpdateListPvz()
{
$errors = false;
$request = self::sendToSDEK(false, 'pvzlist', 'type=ALL');
if ($request['code'] == 200) {
$arList = array();
$xml = simplexml_load_string($request['result']);
foreach ($xml as $key => $val) {
$cityCode = (string)$val['CityCode'];
if(!self::getBySId($cityCode))
continue;
$type = (string)$val['Type'];
$city = (string)$val["City"];
if (strpos($city, '(') !== false)
$city = trim(substr($city, 0, strpos($city, '(')));
if (strpos($city, ',') !== false)
$city = trim(substr($city, 0, strpos($city, ',')));
$code = (string)$val["Code"];
$arList[$type][$city][$code] = array(
'Name' => (string)$val['Name'],
'WorkTime' => (string)$val['WorkTime'],
'Address' => (string)$val['Address'],
'Phone' => (string)$val['Phone'],
'Note' => (string)$val['Note'],
'cX' => (string)$val['coordX'],
'cY' => (string)$val['coordY'],
);
if ($val->WeightLimit) {
$arList[$type][$city][$code]['WeightLim'] = array(
'MIN' => (float)$val->WeightLimit['WeightMin'],
'MAX' => (float)$val->WeightLimit['WeightMax']
);
}
}
} else {
$strInfo = $request['code'] . ".";
$errors = true;
}
file_put_contents($_SERVER["DOCUMENT_ROOT"] . "/bitrix/js/" . self::$MODULE_ID . "/list.php", json_encode($arList));
if ($strInfo && COption::GetOptionString(self::$MODULE_ID, 'logged', false)) {
$file = fopen($_SERVER["DOCUMENT_ROOT"] . "/bitrix/js/" . self::$MODULE_ID . "/hint.txt", "a");
fwrite($file, "<br><br><strong>" . date('d.m.Y H:i:s') . "</strong><br>" . $strInfo);
fclose($file);
}
if (!COption::GetOptionString(self::$MODULE_ID, 'logged', false) && $request['code'] != 200)
return array('code' => $request['code']);
return !$errors;
}
}
以上是关于php Хелпердляслужбы$ b $bдоставкиСдэк,обновляеттолькоПВЗ,Безсинхронизациигородов的主要内容,如果未能解决你的问题,请参考以下文章
php Вебсерверсклоненияпопадежамсловрусскихслов
scss Анимацияпульсациидляформы$ b $bИдляформыдобавляемперспективу,чтобы3Dбыло
La Sylphide 仙女
csharp Расчетиотображениепроцентовдляследующихлет
vbscript МакросдляOfficeудаляющийвселичныеданные(Инспектор)вовсехфайлахвыбраннойпапки。
text Проходпоспискувложеныхобъектов