OpenAPI基本介绍

微伴助手开放接口对接文档

version: 0.4

注1:微伴助手开放接口已经开放公测,进入微伴后台-应用管理-API接入以获取企业标识(corp_id) ,企业API调用凭据(secret

注2:系统内所有的时间相关字段如果没有特别说明都是以 为单位。

注3:目前open api并未提供测试模式,请研发调用的时候注意,测试完成的时候及时删除测试数据。

阅读说明

微伴助手通过开放接口(Open API)为接入企业提供进一步集成和个性化定制的能力。

所有接口都使用 HTTPS 协议,JSON 数据格式和 UTF-8 编码。

接口使用 GET 和 POST 两种操作,其他类型操作(如 PUT)皆不会用到。

GET 类型操作中可能需要 query参数

说明: query参数是放入url中的参数,例如 API 企业微信营销_企业微信会话存档_私域流量运营-微伴助手官网 在添加 query 参数 access_tokenid 后完整请求为:

企业微信营销_企业微信会话存档_私域流量运营-微伴助手官网

另外,POST 类型操作中除了 query参数 外还可能需要提供 body参数。具体会在相应业务 API 文档中介绍。

请求返回值中总是包含 errcodeerrmsg 字段,称为基础返回字段。用于描述请求的成功状态,其定义如下:


https://weibanzhushou.com/dashboard/side_window#tab=clientCustomerInfoManage

node后端接口:

企业微信点击客户画像时,自动调我们配置的卡片链接对应后端接口,并将code传递给后端接口,后端拿到code。前端使用vue开发多页面应用,其中包含一个order.html页面用于显示在这个自定义卡片的位置。后端通过http协议读取order.html页面,并将code或者自定义一个token以响应头的形式返回给企业微信的卡片处。前端拿到code或token后可以和后端的其他接口交互了。

//微伴测试
const toolsGetPage = async (req, res) => {const { code } = req.queryconsole.log(req.url)console.log(code)axios({url: 'https://test.xxx.com/weiban/order.html'}).then(resHtml => {//console.log(resHtml.data)// const tempPage = fs.readFileSync(//   '/source/banxuezhushou_h5/public/weiban/index.html',//   'utf-8'// )if (code === '666') {res.setHeader('access_token', Date.now())res.setHeader('code', code)res.send(resHtml.data)//res.redirect('http://localhost:85/#/h5/index/home/recommend')} else {res.setHeader('access_token', 'no')res.setHeader('code', code)res.send(resHtml.data)}    })}

order.html:

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><metaname="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0, user-scalable=0"/><meta name="format-detection" content="telephone=no" /><link rel="icon" href="<%= BASE_URL %>favicon.ico" /><title>微伴</title><script>var _hmt = _hmt || [];(function () {var hm = document.createElement('script')hm.src = 'https://hm.baidu.com/hm.js?ba026e086390c108e27594beca3eaf83'var s = document.getElementsByTagName('script')[0]s.parentNode.insertBefore(hm, s)})()</script><script>var req = new XMLHttpRequest()req.open('GET', document.location, false)req.send(null)var headers = req.getAllResponseHeaders().toLowerCase()var tempCode = req.getResponseHeader('code')var token = req.getResponseHeader('access_token')if (token) {localStorage.setItem('token-weiban', token)} else {localStorage.setItem('token-weiban', '123')}var code = '456'if (tempCode) {code = tempCode}console.log(headers)</script></head><body><noscript><strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't workproperly without JavaScript enabled. Please enable it tocontinue.</strong></noscript><div id="app"></div><!-- built files will be auto injected --></body>
</html>

.vue文件:

<template><div><div class="m-weiban-wrap"><div class="m-weiban-nav-wrap"><van-tabs v-model="active" class="m-weiban-tabs"><van-tab v-for="item in navList" :title="item.title" :key="item.id"></van-tab></van-tabs></div><div class="m-weiban-info"><div class="m-weiban-grid-wrap"><div class="m-weiban-flex"><div class="m-weiban-flex-item"><div class="m-weiban-grid-item"><div class="m-weiban-grid-item-title">消费订单数</div><div class="m-weiban-grid-item-value">{{ num1 }}</div></div></div><div class="m-weiban-flex-item"><div class="m-weiban-grid-item"><div class="m-weiban-grid-item-title">消费金额</div><div class="m-weiban-grid-item-value">{{ num2 }}</div></div></div><div class="m-weiban-flex-item"><div class="m-weiban-grid-item"><div class="m-weiban-grid-item-title">客单数</div><div class="m-weiban-grid-item-value">{{ num3 }}</div></div></div><div class="m-weiban-flex-item"><div class="m-weiban-grid-item"><div class="m-weiban-grid-item-title">退款金额数</div><div class="m-weiban-grid-item-value">{{ num4 }}</div></div></div><div class="m-weiban-flex-item"><div class="m-weiban-grid-item"><div class="m-weiban-grid-item-title">退款次数数</div><div class="m-weiban-grid-item-value">{{ num5 }}</div></div></div></div></div><div class="m-weiban-info-list-wrap"><div class="m-weiban-info-list"><van-listv-model="loading":finished="finished":finished-text="emptyText"@load="onLoad"><divv-for="(item, index) in course_list":key="index"class="m-weiban-list-item"><div class="m-weiban-row"><span class="m-weiban-desc-label">订单编号</span><span class="m-weiban-desc-value">{{ item.order_id }}</span><span class="m-weiban-copy" @click="handleCopy(item)">复制</span></div><div class="m-weiban-row"><span class="m-weiban-desc-label">商品名称</span><span class="m-weiban-desc-value">{{ item.goods_name }}</span></div><div class="m-weiban-row"><span class="m-weiban-desc-label">渠道名称</span><span class="m-weiban-desc-value">{{item.channel_name}}</span></div><div class="m-weiban-row"><span class="m-weiban-desc-label">订单状态</span><span class="m-weiban-desc-value">{{item.order_status}}</span></div><div class="m-weiban-row"><span class="m-weiban-desc-label">创建时间</span><span class="m-weiban-desc-value">{{item.create_time}}</span></div><div class="m-weiban-row"><span class="m-weiban-desc-label">支付时间</span><span class="m-weiban-desc-value">{{ item.paid_time }}</span></div></div></van-list><!-- <van-skeleton v-if="isLoading" title :row="3"></van-skeleton> --><van-emptyv-if="loading === false && course_list.length === 0"description="暂无数据"></van-empty><!-- <div class="m-weiban-loading-wrap" v-show="loading"><van-loading></van-loading></div> --></div></div></div></div></div>
</template><script>
import axios from 'axios'
import { getOrderList } from '@/api/weiban'
import { formatNum } from './config'
import * as clipboard from 'clipboard-polyfill/text'
import './index.css'export default {data() {return {message: 'hello',course_list: [],isLoading: false,finished: false,loading: false,emptyText: '没有更多了',active: 0,navList: [],num1: '',num2: '',num3: '',num4: '',num5: '',}},mounted() {//this.handleGetList()this.getNavList()this.getNum()},methods: {handleGetList() {localStorage.setItem('token-weiban', token)localStorage.setItem('code-weiban', code)this.isLoading = truelet that = thisaxios({url: `${baseUrl}/card/xxx?code=${code}`,method: 'get',headers: {Authorization: token,},}).then((res) => {this.isLoading = falseres.data.code = 404if (res.data.code === 200) {let tempData = res.data.datalet tempList = []for (let key in tempData) {tempList.push(tempData[key])}this.course_list = tempList} else if (res.data.code === 404) {let tempData = {0: {id: 123,order_no:'111',order_status: 3,created_at: '2022-10-14 15:04:02',updated_at: '2022-10-14 15:04:02',},}let tempList = []for (let key in tempData) {tempList.push(tempData[key])}this.course_list = tempList}}).catch((err) => {console.log(err)})},onLoad() {this.loading = truegetOrderList(code).then((res) => {let testData = {code: 200,msg: '成功',data: {order_list: [],},}res = { data: testData }if (res.data.code === 200) {let tempData = res.data.data.order_list// let tempList = []// for (let key in tempData) {//   tempList.push(tempData[key])// }this.course_list = [...this.course_list, ...tempData]this.loading = falsethis.finished = trueif (this.course_list.length === 0) {this.emptyText = ''}}})returnaxios({url: `${baseUrl}/card/xxx?code=${code}`,method: 'get',headers: {Authorization: token,},}).then((res) => {let testData = {code: 200,msg: '成功',data: {order_list: [],},}res = { data: testData }if (res.data.code === 200) {let tempData = res.data.data.order_list// let tempList = []// for (let key in tempData) {//   tempList.push(tempData[key])// }this.course_list = [...this.course_list, ...tempData]this.loading = falsethis.finished = trueif (this.course_list.length === 0) {this.emptyText = ''}}}).catch((err) => {console.log(err)})},getNavList() {this.navList = [{id: 0,title: '抖音',},{id: 1,title: '快手',},{id: 2,title: '小鹅通',},{id: 3,title: '京东',},]},getNum() {this.num1 = formatNum(364)this.num2 = formatNum(64578)this.num3 = formatNum(123)this.num4 = formatNum(232)this.num5 = formatNum(6)},handleCopy(item) {clipboard.writeText(item.order_id).then(() => {this.$toast('复制成功')})},},
}
</script><style></style>

后端用到的接口:

http://openapi.weibanzhushou.com/api-8233537

消费code:

http://openapi.weibanzhushou.com/api-8269970

根据external_user_id查询用户详情:

http://openapi.weibanzhushou.com/api-8269960

如果想查到客户的手机号,需要提前修改客户的资料,添加用户的手机号,通过扫描添加的客户企业微信那不到用户的手机号,通过手机号添加的客户,企业微信可以拿到用户的手机号。

拿到客户的手机号后,如果数据库里客户的其他信息也是和手机号关联的。就可以去数据库了拿客户的其他信息了。

企业微信自定义客户画像相关推荐

  1. 4个BOSS和4800人聊了118分钟:基于企业微信的客户运营

    3月21日,星期六.晚上10点,一场持续118分钟的直播落下帷幕. 与此刻同时活跃在互联网信息流中的数十万个直播间相比,这场由四个"中年大叔"Boss组成演绎的直播或许不算华丽,但 ...

  2. 对接企业微信,客户关系管理也可以很简单!

    在 CRMEB Pro v2.2 更新中,CRMEB 特别对接企业微信,将客户关系管理转移至企业微信系统中,合理运用企业微信强大的管理与数据统计功能,让客户关系管理更加智能,让客户信息数据统计更加便捷 ...

  3. 企业微信之客户联系配置及使用

    一.简述 企业微信跟微信是同一家公司(T)的产品,内部已经实现数据交互.从微信引流,企业微信对接,对中小公司来说是一种比较受欢迎的引流方式.下面简单描述它的对接过程. 二.操作步骤 1.信息描述 微信 ...

  4. 企业微信管理客户如何管理?

    自2021年后,企业微信取代微信成为各大企业主要客户运营平台,使用企业微信跟单成为常见场景.如何使用企业微信管理客户是当下企业最关心的议题之一.以下是去SCRM场景下企业关注的几大问题: 1. 关于好 ...

  5. 企业微信获取客户群里用户的unionid;企业微信获取客户详情

    企业微信获取客户群里用户的unionid:企业微信获取客户详情 提示:企业微信获取客户群里用户的unionid其实是通过获取客户详情的接口 文章目录 企业微信获取客户群里用户的unionid:企业微信 ...

  6. 企业微信处理客户消息怎么快速回复

    企业微信可以为大家的工作提供更多的空间交流,不仅可以在同事之间的交流工作,还可以添加客户的联系方式,用于回复客户提出的问题,企业微信将工作和个人私人空间严格区分开来,给很多办公族提供了更大的便利. 在 ...

  7. 基于企业微信的客户运营:9问9答,轻松get客户运营神器

    01 用企业微信运营客户,有什么独特好处? 第一,员工用企业微信能直接加客户微信,与客户建立强联系:还能向客户展示职业头像.实名认证和企业名称,对外形象更专业,快速赢取客户信任. 第二,如果生意不错, ...

  8. 浅谈运用企业微信进行客户分层运营的方法

    我们在做用户运营的过程中,经常听到一个词叫用户分层. 用户分层是以用户价值(比如说:活跃用户.高价值用户)为中心来进行切割的,在同一分层模型下,一个用户只会处于一个层次中.还有一种说法是用户分群,它是 ...

  9. 企业微信跟进客户 的功能,企鲸客scrm 互动雷达功能介绍

    在很多时候,特别是销售类型的公司,我们给客户发一个文档,比如公司介绍,活动介绍.产品介绍等等,我们无法知道客户是否查阅,也不好一直追问客户是否查看,针对这个痛点,企鲸客scrm推出了互动雷达功能,完美 ...

最新文章

  1. 发际线有救了!这款app可一键AI生发,拯救你的自拍焦虑
  2. 美柚引流宝妈女粉,淘宝客微商不用引流脚本也能日吸500+
  3. 【工作相关】公子龙:工作后我变强了,暂时没秃
  4. VTK:多重渲染窗口用法实战
  5. PADS Layout VX.2.3 制作PCB封装(Decal)时,导入DXF文件
  6. [转载] 康威的人生游戏与轻量级模式
  7. 我行我素购物管理系统
  8. action mutation 调用_Vuex源码学习(七)action和mutation如何被调用的(调用篇)
  9. VMware安装和卸载时出现无法访问你试图使用的功能所在的网络位置该怎么办(Windows Installer CleanUp)
  10. 监护仪系统都是Linux吗,基于Linux和MCU的心电监护仪设计
  11. Navicat Premium 用于增强您的数据库管理系统
  12. uniapp和vue的区别
  13. 使用ExcelPackage生成Excel2007电子表格
  14. 有三类人永远做不了程序员
  15. Big Mart Sales:预测销售结果 |Python
  16. Ubuntu20.04虚拟机使用Kubeadm从0到1搭建K8S集群(超详细)
  17. 2020暑期实习 总结
  18. 罗马音平假字复制_罗马音平假名和片假名大全
  19. ec,easyclick常用函数大全,集合1
  20. 3-3 兔子跳楼梯 3-4 斐波那契数列(II)

热门文章

  1. 学习中遇到的bug之hadoop安装后找不到namenode
  2. 8ms入门教程| 安利!开发者用好这个嵌入式开发平台,准点下班不是梦!
  3. C语言编写的坦克大战exe小游戏
  4. 职高计算机应用基础试题,中职职高计算机应用基础考试试题doc
  5. Axure9 自建元件库+编辑
  6. Android crash解决集锦
  7. 【Unity VR开发】结合VRTK4.0:直线
  8. 谈谈学习 --- 我认为的正确的学习姿势
  9. taobao自动发货问题
  10. python基于PHP+MySQL的家装设计平台管理系统