dotwallet
Version:
A DotWallet helper library
136 lines (135 loc) • 5.47 kB
JavaScript
"use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const dwMerchant_1 = require("./dwMerchant");
const dwCom_1 = require("./dwCom");
const WebRequest = __importStar(require("web-request"));
var MicroPaymentStatus;
(function (MicroPaymentStatus) {
MicroPaymentStatus[MicroPaymentStatus["NO"] = 0] = "NO";
MicroPaymentStatus[MicroPaymentStatus["YES"] = 1] = "YES";
})(MicroPaymentStatus || (MicroPaymentStatus = {}));
class DWUser {
constructor(merchant, userName) {
this.m_merchant = merchant;
this.m_userName = userName;
}
async GetAccessCode(code) {
const accessTokenURL = new URL("openapi/access_token", dwMerchant_1.DWMerchant.DotWalletOpenURL);
const rsp = await WebRequest.post(accessTokenURL.href, {
timeout: this.m_merchant.m_timeout,
headers: {
'Content-Type': 'application/json',
}
}, JSON.stringify({
app_id: this.m_merchant.m_appID,
secret: this.m_merchant.m_secret,
code: code
}));
const result = JSON.parse(rsp.content);
if (result.code != 0) {
throw new dwCom_1.DWError(result.code, result.msg);
}
this.m_accessCode = result.data;
return this.m_accessCode;
}
async RefreshAccessToken() {
//todo refresh_access_token method get
const refreshTokenURL = new URL("openapi/refresh_access_token", dwMerchant_1.DWMerchant.DotWalletOpenURL);
refreshTokenURL.searchParams.append('app_id', this.m_merchant.m_appID);
refreshTokenURL.searchParams.append('refresh_token', this.m_accessCode.refresh_token);
const rsp = await WebRequest.get(refreshTokenURL.href, {
timeout: this.m_merchant.m_timeout,
});
const result = JSON.parse(rsp.content);
if (result.code != 0) {
throw new dwCom_1.DWError(result.code, result.msg);
}
this.m_accessCode = result.data;
}
async GetUserInfo() {
const getURL = new URL("openapi/get_user_info", dwMerchant_1.DWMerchant.DotWalletOpenURL);
getURL.searchParams.append('access_token', this.m_accessCode.access_token);
const rsp = await WebRequest.get(getURL.href, {
timeout: this.m_merchant.m_timeout,
});
const result = JSON.parse(rsp.content);
if (result.code != 0) {
throw new dwCom_1.DWError(result.code, result.msg);
}
this.m_userInfo = result.data;
return this.m_userInfo;
}
async CheckAccessToken() {
const getURL = new URL("openapi/check_access_token", dwMerchant_1.DWMerchant.DotWalletOpenURL);
getURL.searchParams.append('access_token', this.m_accessCode.access_token);
const rsp = await WebRequest.get(getURL.href, {
timeout: this.m_merchant.m_timeout,
});
const result = JSON.parse(rsp.content);
if (result.code != 0) {
throw new dwCom_1.DWError(result.code, result.msg);
}
return result.data;
}
;
async CreateMircoOrder(orderSN, payAmount, opreturnHex, receiveAddress) {
let recvMuti = [{
address: receiveAddress,
amount: payAmount
}];
return this.CreateMircoOrderMuti(orderSN, payAmount, opreturnHex, recvMuti);
}
async CreateMircoOrderMuti(orderSN, payAmount, opreturnHex, receiveMuti) {
const orderURL = new URL("openapi/pay_small_money", dwMerchant_1.DWMerchant.DotWalletOpenURL);
const rsp = await WebRequest.post(orderURL.href, {
timeout: this.m_merchant.m_timeout,
headers: {
'Content-Type': 'application/json',
}
}, JSON.stringify({
app_id: this.m_merchant.m_appID,
secret: this.m_merchant.m_secret,
merchant_order_sn: orderSN,
item_name: this.m_merchant.m_merchantName,
pre_amount: payAmount.toString(),
user_open_id: this.m_userInfo.user_open_id,
opreturn: opreturnHex,
receive_address: receiveMuti,
}));
const result = JSON.parse(rsp.content);
if (result.code != 0) {
throw new dwCom_1.DWError(result.code, result.msg);
}
let rst = result.data;
return rst;
}
async SignMessage(message) {
const orderURL = new URL("openapi/sign_message", dwMerchant_1.DWMerchant.DotWalletOpenURL);
const rsp = await WebRequest.post(orderURL.href, {
timeout: this.m_merchant.m_timeout,
headers: {
'Content-Type': 'application/json',
}
}, JSON.stringify({
app_id: this.m_merchant.m_appID,
secret: this.m_merchant.m_secret,
user_open_id: this.m_userInfo.user_open_id,
money_type: 'BSV',
message: message
}));
const result = JSON.parse(rsp.content);
if (result.code != 0) {
throw new dwCom_1.DWError(result.code, result.msg);
}
let rst = result.data;
return rst;
}
}
exports.DWUser = DWUser;