UNPKG

coa-wx-isv

Version:

一个轻量的微信SDK服务商版 for Node.js

85 lines (84 loc) 4.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WxIsvQrService = void 0; const coa_helper_1 = require("coa-helper"); const WxIsvServiceBase_1 = require("../libs/WxIsvServiceBase"); const customErrorMessage = { '85074': '小程序未发布, 小程序必须先发布代码才可以发布二维码跳转规则', '85075': '个人类型小程序无法设置二维码规则', }; class WxIsvQrService extends WxIsvServiceBase_1.WxIsvServiceBase { constructor() { super(...arguments); this.customErrorMessage = customErrorMessage; } // 获取体验小程序的体验二维码 async getCommitQrImage(accessToken, path) { path = encodeURIComponent(path); return await this.requestStream('GET', '/wxa/get_qrcode', {}, { access_token: accessToken, path }); } // 获取小程序码(无数量限制) async getWxaImageUnlimited(accessToken, data) { return await this.requestStream('POST', '/wxa/getwxacodeunlimit', { width: 1280, auto_color: false, ...data }, { access_token: accessToken }); } // 获取小程序码(有数量限制) async getWxaCodeLimited(accessToken, data) { return await this.requestStream('POST', '/wxa/getwxacode', { width: 1280, auto_color: false, ...data }, { access_token: accessToken }); } // 获取小程序的二维码(有数量限制) async getWxaQrCodeLimited(accessToken, data) { return await this.requestStream('POST', '/cgi-bin/wxaapp/createwxaqrcode', { width: 1280, ...data }, { access_token: accessToken }); } // 获取已设置的二维码规则 async list(accessToken) { return await this.request('POST', '/cgi-bin/wxopen/qrcodejumpget', {}, { access_token: accessToken }); } // 增加二维码规则 async add(accessToken, data) { data = coa_helper_1.$.snakeCaseKeys({ ...data, isEdit: 0 }); return await this.request('POST', '/cgi-bin/wxopen/qrcodejumpadd', data, { access_token: accessToken, }); } // 修改二维码规则 async edit(accessToken, data) { data = coa_helper_1.$.snakeCaseKeys({ ...data, isEdit: 1 }); return await this.request('POST', '/cgi-bin/wxopen/qrcodejumpadd', data, { access_token: accessToken, }); } // 发布二维码规则 async publish(accessToken, data) { return await this.request('POST', '/cgi-bin/wxopen/qrcodejumppublish', data, { access_token: accessToken }); } // 删除二维码规则 async delete(accessToken, data) { return await this.request('POST', '/cgi-bin/wxopen/qrcodejumpdelete', data, { access_token: accessToken }); } // 获取校验文件名称及内容 async getFile(accessToken) { return await this.request('POST', '/cgi-bin/wxopen/qrcodejumpdownload', {}, { access_token: accessToken }); } // 将一条长链接转成短链接 async shortUrl(accessToken, longUrl) { return (await this.request('POST', '/cgi-bin/shorturl', { action: 'long2short', long_url: longUrl }, { access_token: accessToken })); } /** * 生成带参数的二维码(创建永久二维码ticket) * https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html * @param accessToken 接口调用凭证 * @param scene_str 场景值ID(字符串形式的ID),字符串类型,长度限制为1到64 */ async getMpTicket(accessToken, scene_str) { return (await this.request('POST', '/cgi-bin/qrcode/create', { action_name: 'QR_LIMIT_STR_SCENE', action_info: { scene: { scene_str } } }, { access_token: accessToken })); } /** * 生成带参数的二维码(通过ticket换取二维码) * @param ticket 二维码ticket */ async getMpQrCode(ticket) { ticket = encodeURIComponent(ticket); return await this.requestStream('GET', 'https://mp.weixin.qq.com/cgi-bin/showqrcode', {}, { ticket }); } } exports.WxIsvQrService = WxIsvQrService;