/** * TrackEmailStatModel::sendTrackEmail() * 发送跟踪邮件 * @param array $data 邮件内容 * @return bool */ public static function sendTrackEmail($data) { require_once WEB_PATH . 'lib/ses/SimpleEmailService.php'; require_once WEB_PATH . 'lib/ses/SimpleEmailServiceRequest.php'; require_once WEB_PATH . 'lib/ses/SimpleEmailServiceMessage.php'; $smtpUser = $data['smtpUser']; $smtpPwd = $data['smtpPwd']; $smtpHost = $data['smtpHost']; $title = $data['title']; $content = $data['content']; $toUserEmail = $data['toUserEmail']; $toUserId = $data['toUserId']; $userEmail = $data['userEmail']; $userName = $data['userName']; $trackNum = $data['trackNumber']; $retryCount = $data['retryCount']; // print_r($data); // exit; //初始化邮件发送 $ses = new SimpleEmailService($smtpUser, $smtpPwd); $m = new SimpleEmailServiceMessage(); $m->addTo(array("{$toUserId} <{$toUserEmail}>")); //收件人 $m->setFrom("{$userName} <{$userEmail}>"); //发件人 $m->setSubject($title); // 邮件标题 $m->setMessageFromString(NULL, $content); //内容 //设置标题和内容编码 $m->setSubjectCharset('UTF-8'); $m->setMessageCharset('UTF-8'); $res = $ses->sendEmail($m); //发送邮件 if (!empty($res['MessageId'])) { $flag = TransOpenApiModel::updateTrackNumber($trackNum, array("toEmailSend" => 1)); if ($flag) { $res['sendFlag'] = 1; } else { $res['sendFlag'] = 2; } } else { $where = "trackNumber = '{$trackNum}' AND retryCount>='{$retryCount}' AND is_success = 0"; $result = self::checkRetryCount($where); $counts = isset($result['retryCount']) ? intval($result['retryCount']) : 0; if ($counts >= $retryCount) { $flag = TransOpenApiModel::updateTrackNumber($trackNum, array("toEmailSend" => 2)); } $res['sendFlag'] = 0; } return $res; }
function track_number_detail_country($trackName) { global $trackNumber, $carrierId; $detailInfo = TransOpenApiModel::getTrackInfo($trackNumber, $trackName); echo $detailInfo, "\n"; $detailInfo = json_decode($detailInfo, true); print_r($detailInfo); $data = array(); if (is_array($detailInfo)) { $detailCount = count($detailInfo['trackingEventList']); if ($detailCount > 0) { //有跟踪数据插入 foreach ($detailInfo['trackingEventList'] as $key => $val) { $postion = post_check($val['place']); $event = post_check($val['details']); $trackTime = strtotime($val['date']) ? strtotime($val['date']) : strtotime(trim(substr($val['date'], 0, strpos($val['date'], ' ')))); $addTime = time(); array_push($data, "('{$trackNumber}','{$postion}','{$event}','{$trackTime}','{$addTime}')"); } array_push($data, $trackNumber); print_r($data); $sql_data = $data; $data = array('status' => $detailInfo['Response_Info']['status']); $res_number = TransOpenApiModel::updateTrackNumber($trackNumber, $data); //更新跟踪号信息 $res_detail = TransOpenApiModel::addTrackNumberDetailByCountry($carrierId, $sql_data); //详细数据插入 echo $res_detail, "=====", $res_number, "=====", date('Y-m-d H:i:s'), "\n"; return $detailInfo['Response_Info']['status']; } else { if (!isset($detailInfo['errCode'])) { $res = TransOpenApiModel::updateTrackNumber($trackNumber, array("trackTime" => time())); // check_cancel_order(); return 0; } else { return -1; } } } else { return -1; } }
} else { $res_number = $v['trackNumber']; } echo $res_detail, "=====", $res_number, "=====", date('Y-m-d H:i:s', time()), "\n"; $errnum = 1; } else { if (isset($detailInfo['errCode'])) { if ($errnum >= $errMaxNum) { echo date('Y-m-d H:i:s', time()), "===数据连续抓取失败{$errMaxNum},即将退出数据抓取\n"; $message = TransOpenApiModel::sendMessage("{$type}", "{$from}", "{$to}", '物流系统服务器(121.40.69.217)报错,' . $detailInfo['ReturnValue'] . '-cid:' . $carrierId . ',请及时处理下!', '物流系统服务器报错' . $detailInfo['errCode']); echo date('Y-m-d H:i:s', time()), "===信息发送状态:", $message, "\n"; break; } $errnum++; } else { $res = TransOpenApiModel::updateTrackNumber($trackNumber, array("trackTime" => time())); check_cancel_order(); $errnum = 1; } } } $row++; } //检查ERP是否有邮局退回 function check_cancel_order() { global $dbConn, $carrierId, $trackNumber; echo date('Y-m-d H:i:s', time()), "===检查订单状态开始===\n"; empty($carrierId) ? $condition = 1 : ($condition = "carrierId={$carrierId}"); $sql = "SELECT orderSn,lastTime FROM trans_track_number WHERE {$condition} AND trackNumber = '{$trackNumber}'"; $query = $dbConn->query($sql);