shopee-openapi-v2
Version:
shopee open api sdk
143 lines • 12.3 kB
JavaScript
;
/*
* @Author: Monve
* @Date: 2022-03-10 11:46:01
* @LastEditors: Monve
* @LastEditTime: 2022-07-12 16:02:44
* @FilePath: /shopee-openapi-v2/src/index.ts
*/
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const const_1 = require("./utils/const");
const request_1 = require("./utils/request");
const sign_1 = require("./utils/sign");
const queryString = require("query-string");
const chat_1 = require("./chat");
const shop_1 = require("./shop");
const voucher_1 = require("./voucher");
const product_1 = require("./product");
const order_1 = require("./order");
const logistics_1 = require("./logistics");
const payment_1 = require("./payment");
const returns_1 = require("./returns");
const public_1 = require("./public");
const push_1 = require("./push");
const axios_1 = require("axios");
class ShopeeOpenApi {
constructor() {
this.product = new product_1.ProductApi();
this.shop = new shop_1.ShopApi();
this.order = new order_1.OrderApi();
this.logistics = new logistics_1.LogisticsApi();
this.payment = new payment_1.PaymentApi();
this.returns = new returns_1.ReturnsApi();
this.public = new public_1.PublicApi();
this.push = new push_1.PushApi();
this.chat = new chat_1.ChatApi();
this.vocher = new voucher_1.VoucherApi();
this.setAppConfig = ({ partner_id, partner_key, is_dev, redirect, retries = 0, retryDelay = (retryCount) => Math.pow(retryCount, 2) * 1000 }) => {
this.partner_id = Number(partner_id);
this.partner_key = partner_key;
this.is_dev = is_dev;
this.redirect = redirect;
const_1.api_config.retries = retries;
const_1.api_config.retryDelay = retryDelay;
};
const results = [(res) => res, (error) => {
if (error.response && error.response.data) {
return error.response;
}
throw error;
}];
function tsS() {
return Math.round(new Date().getTime() / 1000);
}
this.chat.uploadImage = ({ shop_id, access_token, file }) => {
const url = this.generateParamsString('/api/v2/sellerchat/upload_image', tsS(), access_token, shop_id);
return axios_1.default.post(url, file, {
baseURL: this.is_dev ? const_1.BASE_URL.test : const_1.BASE_URL.live,
headers: { ...file.getHeaders() }
}).then(...results);
};
request_1.axios_service.interceptors.request.use((config) => {
if (!config.headers) {
config.headers = {};
}
config.headers['Content-Type'] = "application/json";
config.baseURL = this.is_dev ? const_1.BASE_URL.test : const_1.BASE_URL.live;
const system_params = {
partner_id: this.partner_id, timestamp: tsS()
};
const data = {
...(config.method === 'get' ? config.params : config.data)
};
const { timestamp } = system_params;
const { access_token, shop_id } = data;
if (config.params) {
delete config.params.access_token;
delete config.params.shop_id;
Object.keys(config.params).map((key) => {
if (Array.isArray(config.params[key])) {
config.params[key] = config.params[key].join(',');
}
});
}
config.data = toJson(config.data);
config.url = this.generateParamsString(config.url || '', timestamp, access_token, shop_id);
return config;
}, error => {
console.log(error);
Promise.reject(error);
});
request_1.axios_service.interceptors.response.use(...results);
}
generateParamsString(path, timestamp, access_token, shop_id) {
const params = [
this.partner_id.toString(),
path,
timestamp.toString()
];
if (access_token && shop_id) {
params.push(access_token, shop_id.toString());
}
const sign = (0, sign_1.signRequest)(this.partner_key, params);
let json = {
partner_id: this.partner_id,
timestamp,
sign
};
if (shop_id && access_token) {
json = { ...json, shop_id, access_token };
}
return `${path}?${queryString.stringify(json)}`;
}
generateLink(path) {
const origin = this.is_dev ? const_1.BASE_URL.test : const_1.BASE_URL.live;
const timestamp = Math.round(new Date().getTime() / 1000);
const url = this.generateParamsString(path, timestamp);
return `${origin}${url}&redirect=${this.redirect}`;
}
getAuthLink() {
return this.generateLink('/api/v2/shop/auth_partner');
}
getUnAuthLink() {
return this.generateLink('/api/v2/shop/cancel_auth_partner');
}
}
tslib_1.__decorate([
(0, request_1.Post)({ url: '/api/v2/auth/token/get' }),
tslib_1.__metadata("design:type", Function)
], ShopeeOpenApi.prototype, "getAccesstoken", void 0);
tslib_1.__decorate([
(0, request_1.Post)({ url: '/api/v2/auth/access_token/get' }),
tslib_1.__metadata("design:type", Function)
], ShopeeOpenApi.prototype, "refreshAccessToken", void 0);
function toJson(data) {
if (data !== undefined) {
return JSON.stringify(data, (_, v) => typeof v === 'bigint' ? `${v}n` : v)
.replace(/"(-?\d+)n"/g, (_, a) => a);
}
return data;
}
exports.default = new ShopeeOpenApi();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgseUNBQW9EO0FBQ3BELDZDQUFnRTtBQUNoRSx1Q0FBMEM7QUFDMUMsNENBQTJDO0FBQzNDLGlDQUFnQztBQUNoQyxpQ0FBZ0M7QUFDaEMsdUNBQXNDO0FBQ3RDLHVDQUFzQztBQUN0QyxtQ0FBa0M7QUFDbEMsMkNBQTBDO0FBQzFDLHVDQUFzQztBQUN0Qyx1Q0FBc0M7QUFDdEMscUNBQW9DO0FBQ3BDLGlDQUFnQztBQUNoQyxpQ0FBNEM7QUFTNUMsTUFBTSxhQUFhO0lBZWpCO1FBVk8sWUFBTyxHQUFHLElBQUksb0JBQVUsRUFBRSxDQUFBO1FBQzFCLFNBQUksR0FBRyxJQUFJLGNBQU8sRUFBRSxDQUFBO1FBQ3BCLFVBQUssR0FBRyxJQUFJLGdCQUFRLEVBQUUsQ0FBQTtRQUN0QixjQUFTLEdBQUcsSUFBSSx3QkFBWSxFQUFFLENBQUE7UUFDOUIsWUFBTyxHQUFHLElBQUksb0JBQVUsRUFBRSxDQUFBO1FBQzFCLFlBQU8sR0FBRyxJQUFJLG9CQUFVLEVBQUUsQ0FBQTtRQUMxQixXQUFNLEdBQUcsSUFBSSxrQkFBUyxFQUFFLENBQUE7UUFDeEIsU0FBSSxHQUFHLElBQUksY0FBTyxFQUFFLENBQUE7UUFDcEIsU0FBSSxHQUFHLElBQUksY0FBTyxFQUFFLENBQUE7UUFDcEIsV0FBTSxHQUFHLElBQUksb0JBQVUsRUFBRSxDQUFBO1FBdURoQyxpQkFBWSxHQUFHLENBQUMsRUFDZCxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFDdEQsVUFBVSxHQUFHLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUM1RCxFQUFFLEVBQUU7WUFDWCxJQUFJ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