123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import { Config, Provide, InjectClient } from '@midwayjs/core';
- import * as CryptoJS from 'crypto-js';
- import dayjs = require('dayjs');
- import { HttpServiceFactory, HttpService } from '@midwayjs/axios';
- import { get } from 'lodash';
- import { ServiceError } from '../../error/service.error';
- /**
- * 企查查服务
- */
- @Provide()
- export class QichachaService {
- @Config('qichacha')
- qichacha: any;
- @InjectClient(HttpServiceFactory, 'default')
- axios: HttpService;
- getToken() {
- const { key, secretKey } = this.qichacha;
- const Timespan = dayjs().unix();
- const str = `${key}${Timespan}${secretKey}`;
- const token = CryptoJS.MD5(str).toString().toUpperCase();
- return { token, key, secretKey, Timespan, str };
- }
- /**
- * 通过企业名称模糊搜索匹配企业
- * https://openapi.qcc.com/dataApi/1027
- * @param {String} searchName 企业名称
- */
- async searchByName(searchName: string) {
- const info = this.getToken();
- const uri = ' https://api.qichacha.com/NameSearch/GetList';
- const url = `${uri}?key=${get(info, 'key')}&searchName=${searchName}`;
- const result = await this.axios.get(url, {
- headers: {
- Token: get(info, 'token'),
- Timespan: get(info, 'Timespan'),
- },
- });
- if (!result) return;
- const list = get(result, 'Data')
- return list;
- }
- analysisResponse(response) {
- const status = get(response, 'status');
- if (status !== 200) return;
- const result = get(response, 'data');
- const apiStatus = get(result, 'Status');
- if (status !== '200') return;
- return get(result, 'Result');
- }
- }
|