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. 清华学长请授接口自动化测试进阶攻略
  2. java cups_java if 语句 class Test03{\x05\x05main(){\x05\x05\x05int cups
  3. SDUT2165:Crack Mathmen(快速幂)
  4. Spring JDBC整合
  5. CompareAndSwap原子操作原理
  6. Java 在指定目录中查找文件
  7. java选择排序代码_Java排序算法总结之选择排序
  8. 来自java文档 Thread类
  9. 高逼格/高效率办公工具、开发工具、开发插件等各种骚操作汇总 —— [努力更新中...]
  10. IEC 60529防护等级的定义
  11. 用微信公众号控制ESP8266的LED,进一步使用微信当遥控器
  12. RationalDMIS 2020高级教程之变量写入EXCEL
  13. linux连接多个显示器,如何在Linux Ubuntu中使用多个和外部显示器 | MOS86
  14. CAP原理与传统的ACID
  15. 优秀程序员的七大特征,你具备几条?
  16. 11-Air-合宙820-车牌识别2-百度智能云
  17. 手机回收价格—换换回收让用户低成本换机
  18. HTML <i> 标签
  19. Object C 中nsdata图片数据转换成Java字节
  20. CSS3系列 12 栅格布局

热门文章

  1. 杂念参加完了广东互联网大会的一些感想
  2. 关于mysql报表统计的按月按周按季度
  3. emqx开启自定义权限认证
  4. 【code-server】部署浏览器上的VSCode「IPAD编程」
  5. 这本书能教会你的小孩如何理财
  6. 东莞横沥注塑模具设计与制造细节
  7. IBMT60安装XP时找不硬盘?
  8. python实现五环
  9. python金融量化初体验——2020年“大湾区杯”金融数学建模比赛A题《大湾区指数增强策略》刷题总结(持续更新中)
  10. 销售王家装预算报价软件 v2006.12.15 bt