中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

東莞寮步網(wǎng)站建設(shè)自己創(chuàng)建個(gè)人免費(fèi)網(wǎng)站

東莞寮步網(wǎng)站建設(shè),自己創(chuàng)建個(gè)人免費(fèi)網(wǎng)站,做網(wǎng)站如何接單子,wordpress怎么在導(dǎo)航欄里加圖標(biāo)文章目錄 一、前言二、授權(quán)流程三、授權(quán)Url3.1 Url參數(shù)表3.2 授權(quán)能力表3.3 源碼示例 四、授權(quán)回調(diào)4.1 添加授權(quán)回調(diào)接口4.2 授權(quán)回調(diào)接口源碼示例 五、實(shí)際操作演示六、參考 一、前言 目的:將抖音團(tuán)購(gòu)核銷(xiāo)的功能集成到我們自己開(kāi)發(fā)的App和小程序中 【團(tuán)購(gòu)核銷(xiāo)】抖音…

文章目錄

  • 一、前言
  • 二、授權(quán)流程
  • 三、授權(quán)Url
    • 3.1 Url參數(shù)表
    • 3.2 授權(quán)能力表
    • 3.3 源碼示例
  • 四、授權(quán)回調(diào)
    • 4.1 添加授權(quán)回調(diào)接口
    • 4.2 授權(quán)回調(diào)接口源碼示例
  • 五、實(shí)際操作演示
  • 六、參考

一、前言

目的:將抖音團(tuán)購(gòu)核銷(xiāo)的功能集成到我們自己開(kāi)發(fā)的App和小程序中

  • 【團(tuán)購(gòu)核銷(xiāo)】抖音生活服務(wù)商家應(yīng)用快速接入①——基礎(chǔ)工作
  • 【團(tuán)購(gòu)核銷(xiāo)】抖音生活服務(wù)商家應(yīng)用快速接入②——商家授權(quán)
  • 【團(tuán)購(gòu)核銷(xiāo)】抖音生活服務(wù)商家應(yīng)用快速接入③——團(tuán)購(gòu)核銷(xiāo)驗(yàn)券

二、授權(quán)流程

  • 桿知樂(lè)(24小時(shí)自助臺(tái)球棋牌)為例。
商家 桿知樂(lè)商家版 抖音 點(diǎn)擊抖音團(tuán)購(gòu)授權(quán) 添加out_shop_id再生成授權(quán)url 通過(guò)授權(quán)url登錄抖音 選擇門(mén)店進(jìn)行綁定授權(quán) 將商家在抖音上的account_id和授權(quán)信息推送給技術(shù)服務(wù)商 商家 桿知樂(lè)商家版 抖音

三、授權(quán)Url

  • 業(yè)務(wù)授權(quán)URL:https://auth.dylk.com/auth-isv/
https://auth.dylk.com/auth-isv/?client_key=awxxxxxxxx&timestamp=1677686399&sign=xxxxxxxxxxxxxx&solution_key=1&permission_keys=1,16&out_shop_id=shop_id&charset=UTF-8&extra=aaaaaaaaaa

3.1 Url參數(shù)表

字段含義必填
client_key服務(wù)商應(yīng)用標(biāo)示
timestampurl開(kāi)始生效的秒時(shí)間戳 ?,24小時(shí)內(nèi)有效
solution_key到店餐飲1,到店團(tuán)購(gòu)2,隨心團(tuán)5
permission_keys?授權(quán)能力如2.2表
charset交互數(shù)據(jù)的編碼 固定值:UTF-8?
sign根據(jù)參數(shù)內(nèi)容生成的簽名
client_key服務(wù)商應(yīng)用標(biāo)示
out_shop_id綁定抖音門(mén)店的外部門(mén)店ID

3.2 授權(quán)能力表

?能力枚舉permission_keys?語(yǔ)義?
?1 ??門(mén)店管理?
2?訂單查詢(xún)?
3?門(mén)店基礎(chǔ)信息更新?
4 ??門(mén)店任務(wù)查詢(xún)?
?5 ??同步門(mén)店戶(hù)?
?6 ??門(mén)店匹配?
?7 ??門(mén)店裝修?
?8 ??門(mén)店亮照?
?9 ??會(huì)員管理?
?10 ??商品查詢(xún)?
?11 ??商品發(fā)布?
?12 ??團(tuán)購(gòu)核銷(xiāo)?
?13 ??cps傭金設(shè)置與查詢(xún)?
?14 ??KA核銷(xiāo)對(duì)賬?
?15 ??團(tuán)購(gòu)核銷(xiāo)對(duì)賬?
?16 ??商戶(hù)授權(quán)?
?17 ??三方碼發(fā)布?
18 ??同步品牌戶(hù)?
?19??客資查詢(xún)?

3.3 源碼示例

  • 快速生成商家授權(quán)鏈接
private final static String AuthUrl = "https://auth.dylk.com/auth-isv/";public static String genAuthWithBindValidUrlFast(String outShopId) {Map<String, String> query = new HashMap<>();query.put("client_key", APPID);query.put("timestamp", String.valueOf(System.currentTimeMillis() / 1000));query.put("charset", "UTF-8");query.put("solution_key", "4");query.put("out_shop_id", outShopId);query.put("permission_keys", "1,2,10,12,14,15,16");String signResult = SignUtil.signV2(AppSecret, "", query);query.put("sign", signResult);String queryStr = query.entrySet().stream().map(entry -> new StringBuilder().append(entry.getKey()).append("=").append(entry.getValue())).collect(Collectors.joining("&"));StringBuilder resultSb = new StringBuilder(AuthUrl).append("?").append(queryStr);return resultSb.toString();
}
  • 簽名加密SignUtil.java
/*** SignV2 用于生活服務(wù)應(yīng)用計(jì)算header中的簽名(sha256) 新申請(qǐng)應(yīng)用請(qǐng)使用該方法計(jì)算* @param clientSecret 應(yīng)用secret* @param body post請(qǐng)求/spi請(qǐng)求中的body參數(shù)json字符串* @param query url參數(shù)* @return 簽名*/
public static String signV2(String clientSecret, String body, Map<String, String> query) {StringBuilder str = new StringBuilder(clientSecret);query.keySet().stream().filter(a -> !"sign".equals(a)).sorted().forEach(k -> {String val = query.get(k);str.append("&");str.append(k).append("=").append(val);});if (body != null && !"".equals(body)) {str.append("&");str.append("body").append("=").append(body);}System.out.printf("[Sign] v2 str:%s\n", str.toString());String result = SHA256(str.toString());System.out.printf("[Sign] v2 str:%s, result:%s\n", str.toString(), result);return result;
}/*** SHA-256加密* @param input 明文* @return 密文*/
public static String SHA256(String input) {String result = "";try {MessageDigest md = MessageDigest.getInstance("SHA-256");md.update(input.getBytes(StandardCharsets.UTF_8));byte[] digest = md.digest();result = bytes2Hex(digest);} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return result;
}

四、授權(quán)回調(diào)

4.1 添加授權(quán)回調(diào)接口

  • 抖音開(kāi)放平臺(tái)(服務(wù)商平臺(tái))
  • 第三方生活服務(wù)商家應(yīng)用
  • 開(kāi)發(fā)設(shè)置
  • Webhooks
  • 添加你寫(xiě)好的接口,如果你的接口沒(méi)寫(xiě)好,則會(huì)提示參數(shù)不合法

在這里插入圖片描述

  • 如果接口是ok的,則會(huì)提示添加成功。
    在這里插入圖片描述

4.2 授權(quán)回調(diào)接口源碼示例

  1. 校驗(yàn)簽名,加密請(qǐng)求體與請(qǐng)求體的簽名進(jìn)行對(duì)比
  2. 判斷是key和event無(wú)誤
  3. 則保存商戶(hù)授權(quán)信息
/*** 抖音推送接口*/
@PostMapping("/douyin/messages")
public String douyinMessage(@RequestBody String body, @RequestHeader Map<String, String> headers)
{log.info(body);log.info(headers.toString());// 獲取請(qǐng)求頭中的加簽信息String douyinSign = headers.get("X-Douyin-Signature");if(douyinSign==null || douyinSign.length()==0){douyinSign = headers.get("x-douyin-signature");}String data = DouYinUtils.AppSecret + body;String sign = DigestUtils.sha1Hex(data);if(!sign.equals(douyinSign)){log.error("驗(yàn)簽失敗, data="+data);log.error("驗(yàn)簽失敗, sign1="+sign);log.error("驗(yàn)簽失敗, sign2="+douyinSign);return AjaxResult.error().toString();}JSONObject douyinData = JSONObject.parseObject(body);if(douyinData.getString("client_key").equals(DouYinUtils.APPID)){if(douyinData.getString("event").equals("life_saas_cooperate_auth_with_bind")){String content = douyinData.getString("content");JSONObject jsonObject = JSONObject.parseObject(content);Long shopId = Long.valueOf(jsonObject.getString("out_shop_id"));String accountId = jsonObject.getString("account_id");String solutionKey = jsonObject.getString("solution_key");String permissionKey = jsonObject.getJSONArray("permission_keys").toJSONString();BilliardsDouyin billiardsDouyin = new BilliardsDouyin();billiardsDouyin.setAccountId(accountId);billiardsDouyin.setPermissionKeys(permissionKey);billiardsDouyin.setSolutionKey(solutionKey);billiardsDouyin.setShopId(shopId);log.info(billiardsDouyin.toString());billiardsDouyinService.insertBilliardsDouyin(billiardsDouyin);BilliardsShop billiardsShop = billiardsShopService.selectBilliardsShopById(shopId);if (ObjectUtil.isNull(billiardsShop)) {log.error("抖音商家授權(quán)回調(diào)接口,查無(wú)此球廳");return AjaxResult.error().toString();}billiardsShop.setDouyinId(accountId);billiardsShopService.updateBilliardsShop(billiardsShop);}}return douyinData.getJSONObject("content").toJSONString();
}

五、實(shí)際操作演示

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

六、參考

  • 能力授權(quán)&門(mén)店綁定SDK_生活服務(wù)商家應(yīng)用_抖音開(kāi)放平臺(tái)
  • 生活服務(wù)消息推送_生活服務(wù)商家應(yīng)用_抖音開(kāi)放平臺(tái)

覺(jué)得好,就一鍵三連唄(點(diǎn)贊+收藏+關(guān)注)

http://www.risenshineclean.com/news/2019.html

相關(guān)文章:

  • 昆明裝飾企業(yè)網(wǎng)絡(luò)推廣seo干什么
  • wordpress視頻站插件哪些平臺(tái)可以免費(fèi)推廣
  • asp 企業(yè)網(wǎng)站百度推廣退款電話(huà)
  • 非模板網(wǎng)站長(zhǎng)春網(wǎng)站優(yōu)化團(tuán)隊(duì)
  • 網(wǎng)站關(guān)鍵詞詞庫(kù)怎么做谷歌seo關(guān)鍵詞排名優(yōu)化
  • 坪山附近公司做網(wǎng)站建設(shè)哪家效益快十大廣告投放平臺(tái)
  • 做社交網(wǎng)站多少錢(qián)網(wǎng)絡(luò)推廣是干什么的
  • 珠海網(wǎng)站推廣優(yōu)化最近的新聞大事20條
  • 建設(shè)網(wǎng)站公司 優(yōu)幫云seo外鏈推廣工具下載
  • 論壇網(wǎng)站建設(shè)用工具軟件上海關(guān)鍵詞優(yōu)化公司哪家好
  • 網(wǎng)站建設(shè)合同附件格式搜索引擎有哪些類(lèi)型
  • b2b網(wǎng)站有那些企業(yè)網(wǎng)站優(yōu)化排名
  • 麻涌鎮(zhèn)網(wǎng)站建設(shè)做網(wǎng)頁(yè)多少錢(qián)一個(gè)頁(yè)面
  • 基于b s結(jié)構(gòu)做的網(wǎng)站寧波seo軟件免費(fèi)課程
  • 浙江省專(zhuān)業(yè)網(wǎng)站制作網(wǎng)站建設(shè)優(yōu)化近義詞
  • 京東網(wǎng)站建設(shè)的特點(diǎn)網(wǎng)絡(luò)域名怎么查
  • 百度網(wǎng)站建設(shè)是什么志鴻優(yōu)化網(wǎng)官網(wǎng)
  • 黃山搜索引擎優(yōu)化dz論壇seo
  • 美工素材網(wǎng)站有哪些安徽搜索引擎優(yōu)化seo
  • asp.net網(wǎng)站運(yùn)行助手推廣app的營(yíng)銷(xiāo)方案
  • 燈飾外貿(mào)網(wǎng)站百度手機(jī)助手app
  • 后臺(tái)系統(tǒng)免費(fèi)模板網(wǎng)站免費(fèi)游戲推廣平臺(tái)
  • 姑蘇區(qū)做網(wǎng)站seo教程搜索引擎優(yōu)化入門(mén)與進(jìn)階
  • 煙臺(tái)定制網(wǎng)站建設(shè)報(bào)價(jià)seo工具是什么意思
  • 國(guó)示范校建設(shè)網(wǎng)站品牌廣告語(yǔ)經(jīng)典100條
  • 網(wǎng)站后綴twnba最新消息球員交易
  • 網(wǎng)站建設(shè)的業(yè)務(wù)范圍手游推廣個(gè)人合作平臺(tái)
  • 在網(wǎng)站上做網(wǎng)絡(luò)課堂軟件多少錢(qián)線(xiàn)上營(yíng)銷(xiāo)推廣方案
  • 網(wǎng)站建設(shè) 資質(zhì)昆明網(wǎng)絡(luò)推廣
  • 動(dòng)態(tài)html做網(wǎng)站背景離我最近的廣告公司