如何申請(qǐng)微信企業(yè)號(hào)服務(wù)商家(怎么申請(qǐng)微信企業(yè)服務(wù)號(hào))
場(chǎng)景描述:
在客戶(hù)關(guān)系管理系統(tǒng)中,銷(xiāo)售人員新增的報(bào)價(jià)后,會(huì)給到他的上級(jí)領(lǐng)導(dǎo)進(jìn)行審核,報(bào)價(jià)信息將通過(guò)企業(yè)微信企業(yè)號(hào)發(fā)送卡片消息到上級(jí)領(lǐng)導(dǎo)的企業(yè)微信號(hào)中,領(lǐng)導(dǎo)通過(guò)卡片消息查看報(bào)價(jià)信息,并且進(jìn)行審核操作。
實(shí)現(xiàn)效果:
新增報(bào)價(jià)后發(fā)送消息卡片至上級(jí)領(lǐng)導(dǎo)的企業(yè)微信中,上級(jí)領(lǐng)導(dǎo)可在企業(yè)微信上進(jìn)行審批操作。

前期準(zhǔn)備:
實(shí)現(xiàn)此功能模塊需要在白碼低代碼開(kāi)發(fā)平臺(tái)創(chuàng)建以下6個(gè)數(shù)據(jù)表。
- 公司表:存儲(chǔ)公司(客戶(hù))信息,其中公司聯(lián)系人可能會(huì)存在多個(gè)的情況,因此這個(gè)字段的類(lèi)型為集合。

2.聯(lián)系人表:用于記錄聯(lián)系人的基本信息。其中,公司字段關(guān)聯(lián)的是客戶(hù)(公司),聯(lián)系人則是此公司的客戶(hù)代表,一個(gè)公司可以有多個(gè)聯(lián)系人,因此字段類(lèi)型為集合。銷(xiāo)售歸屬人是跟進(jìn)此聯(lián)系人的銷(xiāo)售人員的關(guān)聯(lián)字段。

3.報(bào)價(jià)表:用于記錄報(bào)價(jià)信息,包括產(chǎn)品明細(xì)以及審核記錄,所屬的客戶(hù)(公司)以及聯(lián)系人。

4.審核記錄表:用于記錄審核信息,包括審核人,審核時(shí)間等。

5.產(chǎn)品明細(xì)表:用于記錄報(bào)價(jià)單中的產(chǎn)品(包括數(shù)量、單價(jià)、明細(xì)金額等)

6.用戶(hù)表:用于記錄系統(tǒng)用戶(hù)信息,包括部門(mén),上級(jí)領(lǐng)導(dǎo),客戶(hù)數(shù)上線,企業(yè)微信userid等字段。

實(shí)現(xiàn)步驟:
- 創(chuàng)建發(fā)送企業(yè)微信消息卡片(報(bào)價(jià)信息)的云函數(shù)。
配置API參數(shù):

編程代碼:
async function run($input, $output, $modules = modules) {
/**發(fā)送應(yīng)用文本消息
* 官方API:https://work.weixin.qq.com/api/doc/90000/90135/90236
* 錯(cuò)誤碼查詢(xún)工具:https://open.work.weixin.qq.com/devtool/query?e=
*
* touser、toparty、totag不能同時(shí)為空
*/
const wxworkThirdApi = $modules.wxworkThirdApi;
let agentid = await wxworkThirdApi.getAgentId();
let title = $input.title;//任務(wù)標(biāo)題
let description = $input.description;
let task_id = $input.task_id;
let offer_url = await $modules.helper.getConfig("offer_url");
let order_url = await $modules.helper.getConfig("order_url");
let url = $input.title.includes("報(bào)價(jià)") ? offer_url : order_url;
let data = {
touser:$input.touser,
msgtype:"interactive_taskcard",//任務(wù)卡片消息
agentid,
interactive_taskcard:{
title,
description,
url,
task_id,
btn:[
{
key:"approve",
name:"通過(guò)",
color:"blue",
is_bold:false,
},
{
key:"reject",
name:"拒絕",
color:"red",
is_bold:false,
}
],
},
};
//發(fā)送
let task_card_message = await wxworkThirdApi.request({
method: "post",
url: "message/send",
data
});
/**
* 如果部分接收人無(wú)權(quán)限或不存在,發(fā)送仍然執(zhí)行,但會(huì)返回?zé)o效的部分(即invaliduser或invalidparty或invalidtag),常見(jiàn)的原因是接收人不在應(yīng)用的可見(jiàn)范圍內(nèi)。
* 如果全部接收人無(wú)權(quán)限或不存在,則本次調(diào)用返回失敗,errcode為81013。
* 返回包中的userid,不區(qū)分大小寫(xiě),統(tǒng)一轉(zhuǎn)為小寫(xiě)
*/
$output.invaliduser = task_card_message.invaliduser;
$output.invalidparty = task_card_message.invalidparty;
$output.invalidtag = task_card_message.invalidtag;
$output.res = task_card_message;
}
2.創(chuàng)建一個(gè)“新增報(bào)價(jià)”功能,用于錄入報(bào)價(jià)單信息。并且將生成的報(bào)價(jià)信息通過(guò)企業(yè)微信發(fā)送卡片消息給上級(jí)領(lǐng)導(dǎo)進(jìn)行審核。
(1)選擇聯(lián)系人:篩選銷(xiāo)售歸屬人為當(dāng)前用戶(hù)的聯(lián)系人。

(2)新增報(bào)價(jià):新增一條報(bào)價(jià)單數(shù)據(jù)。
(3)新增產(chǎn)品明細(xì):新增報(bào)價(jià)單中的產(chǎn)品明細(xì)集合,設(shè)置好明細(xì)中各種金額的計(jì)算。
(4)獲取當(dāng)前系統(tǒng)用戶(hù):

(5)獲取上級(jí)領(lǐng)導(dǎo):篩選出當(dāng)前用戶(hù)從屬的上級(jí)領(lǐng)導(dǎo)。

(6)獲取聯(lián)系人公司:做一個(gè)篩選,獲取聯(lián)系人所屬的公司(客戶(hù))。

(7)計(jì)算參數(shù):將上方步驟中的數(shù)據(jù)進(jìn)行整合,輸出。

async function runProcess($model = model,$plugin = plugin,$params = params){ let contact_name = $params.contact_name;//聯(lián)系人名稱(chēng) let company_name = $params.company_name;//聯(lián)系人公司名稱(chēng) company_name = company_name || "個(gè)人" let project_name = $params.project_name;//項(xiàng)目名稱(chēng) let detail_total = $params.detail_total;//明細(xì)總額 let preferential_amount = $params.preferential_amount;//優(yōu)惠金額 let final_amount = $params.final_amount;//最終金額 let time = new Date().getTime();//當(dāng)前時(shí)間戳 let date = $params.date; let desc = `客戶(hù):${company_name} ${contact_name}\n項(xiàng)目名稱(chēng):${project_name}\n明細(xì)總額:${detail_total}\n優(yōu)惠金額:${preferential_amount}\n最終金額:${final_amount}\n創(chuàng)建日期:${date}` $model.output["desc"] = desc; $model.output["task_id"] = `offer_${$params.offer._id}_${time}` $model.output["title"] = `${$params.name}的報(bào)價(jià)申請(qǐng)`}
(8)發(fā)送企業(yè)微信消息卡片:調(diào)用云函數(shù),設(shè)置好模板中的輸入?yún)?shù)。

3.創(chuàng)建一個(gè)“審核報(bào)價(jià)”功能,用于審核報(bào)價(jià)單。
(1)選擇報(bào)價(jià):選擇需要進(jìn)行審核的報(bào)價(jià),需要篩選狀態(tài)為“審核中”的報(bào)價(jià)單數(shù)據(jù)。

(2)報(bào)價(jià)狀態(tài)判斷:若報(bào)價(jià)單狀態(tài)不為“審核中”,則無(wú)法進(jìn)行審核且無(wú)法提交。若為審核中則可以進(jìn)行審核意見(jiàn)輸入,并且在系統(tǒng)中新增一條審核記錄。

(3)新增審核記錄:對(duì)當(dāng)前報(bào)價(jià)審核操作進(jìn)行記錄,其中“審核人”設(shè)為當(dāng)前用戶(hù)。

(4)審核后狀態(tài)判斷:若報(bào)價(jià)通過(guò),則更新報(bào)價(jià)狀態(tài)為“已通過(guò)”,若不通過(guò),則更新報(bào)價(jià)狀態(tài)為“已拒絕”。

(5)更新報(bào)價(jià)狀態(tài)(已通過(guò)/已拒絕):


(6)更新任務(wù)卡片消息狀態(tài):調(diào)用云函數(shù),審核操作完成后,更新消息卡片上的審核意見(jiàn)信息。

4.創(chuàng)建更新消息卡片的云函數(shù)
配置API參數(shù):

編程代碼:
async function run($input,$output,$modules = modules){
const wxworkThirdApi = $modules.wxworkThirdApi;
let agentid = await wxworkThirdApi.getAgentId();
let data = {
userids:[$input.userid],
agentid,
task_id:$input.task_id,
replace_name:$input.replace_name
};
let res = await wxworkThirdApi.request({
method: "post",
url: "message/update_taskcard",
data
});
$output.invaliduser = res;
}

如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.qjsdgw.cn/87363.html