- 小程序客服自动回复如何回复图片?
小程序客服自动回复如何回复图片?
2020-08-20 - 小程序接入快递查询API实现快递查询
#1 在做有物品运输需求的小程序时,都会伴生快递查询的需求。 微信小程序后台也有物流助手提供快捷接入,只是现在没有对个人小程序开放。 所以个人小程序只有找第三方快递查询API。 这里我选 www.kuaidi100.com 来实现快递查询功能。 #2 注册账号、申请 API KEY 就不演示了。 直接看接入文档去寻找必须的参数 正式环境请求地址:https://poll.kuaidi100.com/poll/query.do 请求类型:post 输入参数: customer: String 是 sign: String 是 param Object 是 └ com: string 是 └ num: string 是 └ phone: string 否 └ from: string 否 └ to: string 否 └ resultv2: int 否 https://www.kuaidi100.com/openapi/api_post.shtml 完整文档地址: https://www.kuaidi100.com/openapi/api_post.shtml 不是很复杂,还是用之前的 urllib 库实现查询 [代码]// 云函数入口文件[代码][代码]const cloud = require('wx-server-sdk')[代码][代码]const urllib = require('urllib')[代码][代码]const md5 = require('md5') //参数里的 sign 需要param+key+customer 拼接后md5[代码][代码]const key = 'yourkey'[代码][代码]const customer = 'yourcustomerid'[代码][代码] [代码][代码]cloud.init()[代码][代码] [代码][代码]// 云函数入口函数[代码][代码]exports.main = async(event, context) => {[代码][代码] const wxContext = cloud.getWXContext()[代码][代码] const openid = wxContext.OPENID[代码][代码] const com =event.com || 'yunda'[代码][代码] const num = event.num || '800398697338673387'[代码][代码] const phone = event.phone || '13612345678'[代码][代码] const query = {com,num,phone}[代码][代码] const param = JSON.stringify(query)[代码][代码] const sign = md5(param + key + customer).toUpperCase()[代码][代码] const api_base = 'https://poll.kuaidi100.com/poll/query.do'[代码][代码] // const api_base = 'https://httpbin.org/get'[代码][代码] let {status, data} = await urllib.request(api_base, {[代码][代码] method: 'GET',[代码][代码] data: {[代码][代码] customer,[代码][代码] sign,[代码][代码] param[代码][代码] },[代码][代码] dataType: 'json'[代码][代码] })[代码][代码] [代码][代码] return {[代码][代码] sign,[代码][代码] status,[代码][代码] data[代码][代码] }[代码][代码]}[代码] #3 接入很快,不过测试的时候。好像个人免费版都不能获取有效的结果。 我换了好几个快递公司都提示免费版不支持。 真是无话可说!! #4 对于个人小程序来说,充钱是不可能充钱的。 不过充或者不充,需求就在那里,不用不行。 既然 kuaidi100 不行,就换其他服务提供商。 搜索了一圈,最后决定用 https://www.trackingmore.com 同样注册、申请KEY、看接入文档。 获取单个运单号实时物流信息 接口地址: https://api.trackingmore.com/v2/trackings/realtime 请求方法:post 参数: Headers Content-Type: application/json Trackingmore-Api-Key: YOUR_API_KEY Param tracking_number: 快递单号 carrier_code: 运输商简码 https://www.trackingmore.com/api-track-get-realtime-tracking-results-cn.html#realtime完整文档地址:https://www.trackingmore.com/api-track-get-realtime-tracking-results-cn.html#realtime 也不是很复杂,直接上代码 [代码]// 云函数入口文件[代码][代码]const cloud = require('wx-server-sdk')[代码][代码]const urllib = require('urllib')[代码][代码]const key = 'yourkey'[代码][代码] [代码][代码] [代码][代码]cloud.init()[代码][代码] [代码][代码]// 云函数入口函数[代码][代码]exports.main = async(event, context) => {[代码][代码] const wxContext = cloud.getWXContext()[代码][代码] const openid = wxContext.OPENID[代码][代码] const com =event.com || 'yunda'[代码][代码] const num = event.num || '800398697338673387'[代码][代码] const api_base = 'https://api.trackingmore.com/v2/trackings/realtime'[代码][代码] // const api_base = 'https://httpbin.org/post'[代码][代码] let {status, data} = await urllib.request(api_base, {[代码][代码] method: 'POST',[代码][代码] contentType:'json',[代码][代码] headers: { "Trackingmore-Api-Key": key},[代码][代码] data: {[代码][代码] "tracking_number": num,[代码][代码] "carrier_code": com[代码][代码] },[代码][代码] dataType: 'json'[代码][代码] })[代码][代码] [代码][代码] return {[代码][代码] status,[代码][代码] data[代码][代码] }[代码][代码]}[代码] 这次测试一次通过,no error, no warn. [视频] #5 关键代码就这些了,如果你有其他疑问、需求或者需要小程序端完整源码。加我微信一起交流 [图片] 演示视频点击 https://mp.weixin.qq.com/s/XqH2PEFRGV-FGW4eXHePgA 查看
2019-09-29