UNPKG

dotwallet

Version:
136 lines (135 loc) 5.47 kB
"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;