有没有人知道丰田致享为何没人买ESP系统的啊?

1116人阅读
快递Api(1)
之前的文章,已经分析过快递Api接口可能被使用的需求及场景;今天呢,简单给大家介绍一下微信公众号中怎么来使用快递Api接口,来完成我们的需求和业务场景。
开发语言:Nodejs,其中用到了Neo4j图形数据库
首先,需要到
选择账号类型界面如下:
选择订阅号或服务器都可以,本文是使用订阅号进行展开描述。开发微信小程序的选择小程序即可,不过暂时不对个人开发,只能呵呵了。
选择之后,根据注册流程,一步步填写验证即可。
注册完成后,到登陆即可。
登陆成功,如下界面:
本文使用的开发语言是Nodejs,所以需要你安装Nodejs,请到下载。
注:如需其他的开发语言,会考虑添加或修改开发语言。
开发工具:WebStorm
公众号配置
个人信息的设置,点击左侧菜单中的公众号设置方可设置,不过,对于公众号的信息会有所限制。
我们需要根据用户发送给公众号的内容,返回不同的信息;当然,微信公众号是提供自动回复功能,但由于自动回复返回内容规定,然而无法满足我们的需求;所以,我们需要自己服务器对接微信公众平台,然后我们根据用户发送的内容,响应不同的数据。
配置公众号开发,点击左侧菜单中的基本配置,如下:
修改配置:
配置完成后,点击启用;我们就可以搭建自己的后台来接收微信服务器给我们发送的消息数据。
点击启动之前,我们需先启动我们服务器与微信的绑定服务;因为启动时候,微信会给指定的服务器地址发送验证请求。
绑定服务代码
我这里监听的是8064端口,具体监听那个端口由你自己决定,8064端口是由Nginx转发到Nodejs服务上的,具体Nginx的配置,请百度。
var http = require("http");
var route = require("./lib/route");
var routemap = require("./routemap");
var i = 1;
http.createServer(
function (request, response) {
route(routemap, request.url, request, response);
console.log("The Bind server has been accessed " + i);
if (response.asynchronous == null) {
response.end();
}).listen(8064);
console.log("The Bind server is running.");
接着,路由映射:
var requestHandlers = require("./requestHandlers")
var routemap = {
"/": requestHandlers.test
"/": requestHandlers.bind
"/": requestHandlers.message
"/": requestHandlers.weixinuser
module.exports = routemap
具体接口调用位置:
var requestHandlers = {};
var globaldata = root.
var bind = require('./handlers/bind');
requestHandlers.bind = function (request, response, pathObject, data) {
if (data == null) {
response.write(JSON.stringify({"提示信息": "bind server 运行正常", b: 2}));
bind.message(data, response);
绑定接口实现部分:
var bind = {};
var push = require('../lib/push');
bind.message = function (data, response) {
response.asynchronous = 1;
var echostr = data.
var timestamp = data.
var nonce = data.
var signature = data.
var token = "";
if (checkSignature(token, timestamp, nonce, signature) == true) {
response.write(echostr);
response.end();
response.write("忠实于共产党");
response.end();
var sha1 = require('./../tools/sha1');
function checkSignature(token, timestamp, nonce, signature) {
var strings = [timestamp , nonce , token];
var sortedStrings = strings.sort();
var string = sortedStrings.join().replace(/,/g, "");
var signatureSHA = sha1.hex_sha1(string);
if (signatureSHA == signature) {
return true;
return false;
module.exports =
注:checkSignature是验证微信消息是否正确的一个方法,其它语法的验证Demo请看微信公众号官方提供的实例。另外注意,代码中用的token必须和微信配置token一致。
到此,当你点击启动的时候,微信公众号就会显示绑定成功。
根据消息响应不同内容
首先,当用户关注公众号的时候也会推送消息,根据openid判断此用户是否关注过或重新关注;给用户响应类似谢谢关注的消息。
1.解析微信发送给我们的xml文件,解析出消息的类型;
2.如果是订阅消息类型,收集需要响应的内容
3.选择响应的消息类型,文本或图片等等
4.把收集的内容变成微信xml格式的内容格式
5.响应xml内容给微信
xml定义的格式是:
&![CDATA[gh_c6cd8a443586]]&
&![CDATA[oeFW0juS8FCHZN6VAGYN6MCdyBxo]]&
&![CDATA[text]]&
&![CDATA[金三角地]]&
如果用户已经关注公众号,我们需要根据用户给公众号发送内容在我们的服务器上进行匹配,查看当前关键字是否有所关联;如有关联,响应相应的文本或图文等即可。
下面是之前写的测试代码,仅供参考:
var message = {};
var serverSetting = root.globaldata.serverS
var neo4j = require('neo4j');
var db = new neo4j.GraphDatabase(serverSetting.neo4jUrl);
var parser = require('./../tools/sax2json');
var base64 = require('./../tools/base64');
var replyTemplate = require('./../tools/replyTemplate');
var ajax = require('./../lib/ajax.js');
var vm = require('vm');
var http = require('http');
var scriptPool = {};
var redis = require("redis");
var saveClient = redis.createClient();
var debug = serverSetting.
message.message = function (data, getParam, response) {
response.asynchronous = 1;
var timestamp = getParam.
var nonce = getParam.
var signature = getParam.
var now = new Date();
if (checkSignature(token, timestamp, nonce, signature) == false) {
response.write("忠实于共产党");
response.end();
for (var key in data) {
var messageXML =
parser.toJson(messageXML, function (error, messageJSON) {
var messageData = messageJSON.XML;
next(messageData);
function next(messageData) {
resolveMessage(messageData);
function resolveMessage(messageData) {
message = {
type: messageData.MSGTYPE,
MsgId: messageData.MSGID,
content: messageData.CONTENT
picUrl: messageData.PICURL
location: {
location_X: messageData.LOCATION_X,
location_Y: messageData.LOCATION_Y,
scale: messageData.SCALE,
label: messageData.LABEL
title: messageData.TITLE,
description: messageData.DESCRIPTION,
url: messageData.URL
eventType: messageData.EVENT,
EventKey: messageData.EVENTKEY
CreateTime: now.getTime(),
MsgType:"from"
resolveReply();
function resolveReply() {
ToUserName: "",
FromUserName: "",
CreateTime: now.getTime(),
type: "text",
content: ""
Title: "我的音乐",
Description: "我的音乐很好听",
MusicUrl: "http://124.202.164.17/download/51002/1/mp3/107/128/3_384/LS9MDWtPO6z7yvJnA9bg==.mp3",
HQMusicUrl: "http://124.202.164.17/download/51002/1/mp3/107/128/3_384/LS9MDWtPO6z7yvJnA9bg==.mp3"
ArticleCount: 2,
Articles: [
Title: "拥护共产党的领导",
Description: "践行中国梦",
PicUrl: "/img/bdlogo.gif",
Url: "/img/bdlogo.gif"
Title: "拥护共产党的路线",
Description: "实现中国梦",
PicUrl: "/img/bdlogo.gif",
Url: "/img/bdlogo.gif"
log: "【公众账号管理工具.】\n",
MsgType:"reply"
if(message.event.eventType == "subscribe"){
var sha1 = require('./../tools/sha1');
function checkSignature(token, timestamp, nonce, signature) {
var strings = [timestamp , nonce , token];
var sortedStrings = strings.sort();
var string = sortedStrings.join().replace(/,/g, "");
var signatureSHA = sha1.hex_sha1(string);
if (signatureSHA == signature) {
return true;
return false;
module.exports =
可能代码运行存在问题,仅供参考提供整体流程,谢谢。
注:以上数据及信息,纯属个人统计或其他来源得知,如有出现误差和错误,敬请谅解,谢谢。
ps:如有其它接口网站想再次添加贵公司接口的对比或其他信息及情况,请联系:QQ:
文章来自:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:16571次
排名:千里之外微信公众平台消息接口 微信公众平台开发 微信公众平台开发模式& 快递查询 作者:方倍工作室原文:
一、请求数据
快递100提供快递查询接口.&
通过向指定的地址发送请求,即可返回如JSON、XML等格式的跟综结果
3、请求地址/api?id=[]&com=[]&nu=[]&valicode=[]&show=[0|1|2|3]&muti=[0|1]&order=[desc|asc](使用时请先将上述地址中的 中括号 替换成下面相应的值)
4.输入参数
名称类型是否必需  描述
身份授权key,请
进行申请(大小写敏感)
要查询的快递公司代码,不支持中文,对应的公司代码见 《》和《》。 如果找不到您所需的公司,请发邮件至 咨询(大小写不敏感)
要查询的快递单号,请勿带特殊符号,不支持中文(大小写不敏感)
已弃用字段,无意义,请忽略。
返回类型: 0:返回json字符串, 1:返回xml对象,
2:返回html对象, 3:返回text文本。 如果不填,默认返回json字符串。
返回信息数量: 1:返回多行完整的信息, 0:只返回一行信息。
不填默认返回多行。
排序: desc:按时间由新到旧排列, asc:按时间由旧到新排列。
不填默认返回倒序(大小写不敏感)
5.返回结果
字段名称  字段含义
物流公司编号
每条跟踪信息的时间
每条跟综信息的描述
快递单当前的状态 : 
0:在途,即货物处于运输过程中;1:揽件,货物已由快递公司揽收并且产生了第一条跟踪信息;2:疑难,货物寄送过程出了问题;3:签收,收件人已签收;4:退签,即货物由于用户拒签、超区等原因退回,而且发件人已经签收;5:派件,即快递正在进行同城派件;6:退回,货物正处于退回发件人的途中;该状态还在不断完善中,若您有更多的参数需求,欢迎发邮件至
查询结果状态: 0:物流单暂无结果, 1:查询成功,
2:接口出现异常,
无意义,请忽略
无意义,请忽略
无意义,请忽略
6.返回示例
{"message":"ok","status":"1","state":"3","data":
[{"time":" 13:35:14","context":"客户已签收"},
{"time":" 09:10:10","context":"离开 [北京石景山营业厅] 派送中,递送员[温],电话[]"},
{"time":" 19:46:38","context":"到达 [北京石景山营业厅]"},
{"time":" 15:22:32","context":"离开 [北京石景山营业厅] 派送中,递送员[温],电话[]"},
{"time":" 15:05:00","context":"到达 [北京石景山营业厅]"},
{"time":" 13:37:52","context":"离开 [北京_同城中转站] 发往 [北京石景山营业厅]"},
{"time":" 12:54:41","context":"到达 [北京_同城中转站]"},
{"time":" 11:11:03","context":"离开 [北京运转中心驻站班组] 发往 [北京_同城中转站]"},
{"time":" 10:43:21","context":"到达 [北京运转中心驻站班组]"},
{"time":" 21:18:53","context":"离开 [福建_厦门支公司] 发往 [北京运转中心_航空]"},
{"time":" 20:07:27","context":"已取件,到达 [福建_厦门支公司]"}
同时快递100提供Wap版查询接口为&/
其URL请求为
/wap_result.jsp?rand=35447&id=shentong&fromWeb=null&postid=&sub=%E6%9F%A5%E8%AF%A
&各参数如下:
rand 随机数
id 快递公司名称,此处shentong就是申通
fronweb 是否从web提交
postid 快递号码,此处为
sub 一个固定字段, %E6%9F%A5%E8%AF%A2解码后为 查询 两个汉字
因此我们以上面为标准,构造查询请求.
二、程序实现
二、效果演示&
更智能的快递查询功能请参考:&
欢迎关注方倍工作室微信,了解我们及行业的最新动态
阅读(...) 评论()你正在使用的浏览器版本过低,将不能正常浏览和使用知乎。

我要回帖

更多关于 丰田致享质量怎么样 的文章

 

随机推荐