if ($method === 'GET') { $encrypted = (string) $request->get_param('echostr'); } else { $body = $request->get_body(); if (strlen($body) > 8192) { return new WP_Error('too_large', 'Request too large', ['status' => 413]); } if (!function_exists('simplexml_load_string')) { return new WP_Error('missing_xml', 'PHP SimpleXML missing', ['status' => 500]); } $xml = simplexml_load_string($body, 'SimpleXMLElement', LIBXML_NONET); if ($xml === false || !isset($xml->Encrypt)) { return new WP_Error('bad_xml', 'Missing Encrypt field', ['status' => 400]); } $encrypted = (string) $xml->Encrypt; } if ($signature === '' || $timestamp === '' || $nonce === '' || $encrypted === '') { return new WP_Error('missing_params', 'Missing callback parameters', ['status' => 400]); } $values = [$config['token'], $timestamp, $nonce, $encrypted]; sort($values, SORT_STRING); $expected = sha1(implode('', $values)); if (!hash_equals($expected, $signature)) { wecom_test_log($method . ' signature invalid'); return new WP_Error('bad_signature', 'Invalid signature', ['status' => 403]); } $message = wecom_test_decrypt($encrypted, $config); if (is_wp_error($message)) { wecom_test_log($method . ' decryption error: ' . $message->get_error_code()); return new WP_Error('wecom_decrypt_error', 'Decryption failed', ['status' => 403]); } if ($method === 'GET') { wecom_test_log('GET verification successful'); return new WP_REST_Response($message, 200, ['Content-Type' => 'text/plain; charset=utf-8', 'Cache-Control' => 'no-store']); } // 测试阶段仅记录消息类型等元数据,不保存客户聊天正文。 $message_type = 'unknown'; $xml = simplexml_load_string($message, 'SimpleXMLElement', LIBXML_NONET); if ($xml !== false) { $message_type = isset($xml->MsgType) ? (string) $xml->MsgType : (isset($xml->Event) ? 'event' : 'unknown'); } wecom_test_log('POST received; type=' . preg_replace('/[^a-zA-Z0-9_-]/', '', $message_type)); return new WP_REST_Response('', 200, ['Cache-Control' => 'no-store']); } add_action('rest_api_init', function () { register_rest_route('wecom/v1', '/callback', [ 'methods' => ['GET', 'POST'], 'callback' => 'wecom_test_callback', 'permission_callback' => '__return_true', ]); }); // WordPress REST 默认会把字符串编码成 JSON;企微 GET 验证必须返回原始明文。 add_filter('rest_pre_serve_request', function ($served, $result, $request) { if ($request->get_route() !== '/wecom/v1/callback' || $request->get_method() !== 'GET' || $result->get_status() !== 200) { return $served; } header('Content-Type: text/plain; charset=utf-8'); header('Cache-Control: no-store'); echo $result->get_data(); return true; }, 10, 3);
Especificação do guindaste:
País: Equador
Modelo de guindaste: HD
Capacidade: 5ton
Comprimento do vão: 11m
Altura de elevação: 10m
Deveres de trabalho: A5
Fonte de alimentação: 440V/50Hz/3Ph
Modo de controle: Pingente + controle remoto
QTY: 2 conjuntos
A primeira consulta foi recebida em 06 de agosto, o cliente está solicitando 2 conjuntos de pontes rolantes de viga única de 5 toneladas, com base na necessidade do cliente, sugerimos a ponte rolante de viga única do tipo europeu ponte rolante para eles, esse design é amplamente utilizado e se torna o produto principal.
Comparado com Guindastes elétricos de viga única tipo LD, o guindaste elétrico europeu de viga única tipo HD tem as seguintes vantagens:
O cliente está muito satisfeito com nosso design e preço. Toda a comunicação foi muito tranquila. O cliente levou muito pouco tempo para tomar a decisão de compra. O pedido foi feito em 3 de setembro.
Abaixo estão as fotos da produção:



Qualquer demanda por guindastes, sinta-se à vontade para entrar em contato com a DGCRANE. Você sempre obterá os melhores produtos e serviços de nós!