Commit 4f37e19f by 郑炬波

feat: 精度+去payid

parent b656e4b7
...@@ -22,7 +22,7 @@ const globalDatabase: any = { ...@@ -22,7 +22,7 @@ const globalDatabase: any = {
} }
} }
const createOrder = async ():Promise<{orderId: number, title: string, payId: number, money: number}> => { const createOrder = async ():Promise<{orderId: number, title: string, money: number}> => {
const res = await defaultRequest.post<any, DefaultResponse>('https://testapi.ydl.com/api/consult/user/order/submitWorriesConsultOrder', globalDatabase.MOCK_GOODS) const res = await defaultRequest.post<any, DefaultResponse>('https://testapi.ydl.com/api/consult/user/order/submitWorriesConsultOrder', globalDatabase.MOCK_GOODS)
return res.data return res.data
} }
......
...@@ -23,7 +23,7 @@ const globalDatabase: any = { ...@@ -23,7 +23,7 @@ const globalDatabase: any = {
} }
} }
const createOrder = async (): Promise<{ orderId: number, title: string, payId: number, money: number }> => { const createOrder = async (): Promise<{ orderId: number, title: string, money: number }> => {
const res = await defaultRequest.post<any, DefaultResponse>('https://testapi.ydl.com/api/consult/user/order/submitWorriesConsultOrder', globalDatabase.MOCK_GOODS) const res = await defaultRequest.post<any, DefaultResponse>('https://testapi.ydl.com/api/consult/user/order/submitWorriesConsultOrder', globalDatabase.MOCK_GOODS)
return res.data return res.data
} }
......
import {describe, expect, test} from '@jest/globals' import {describe, expect, test} from '@jest/globals'
import {BACK_ORDER_ID, BACK_PAY_ID, PayChannel, PayError, PayErrorMessage, Payment, PayType} from "@/Payment/Payment"; import {BACK_ORDER_ID, PayChannel, PayError, PayErrorMessage, Payment, PayType} from "@/Payment/Payment";
describe('测试: 创建实例', () => { describe('测试: 创建实例', () => {
test('supportCombination', () => { test('supportCombination', () => {
...@@ -38,12 +38,9 @@ describe('测试: 创建实例', () => { ...@@ -38,12 +38,9 @@ describe('测试: 创建实例', () => {
}) })
test('测试订单查询链接', () => { test('测试订单查询链接', () => {
const testPayId = 111
const testOrderId = 222 const testOrderId = 222
const backUrl = Payment.createBackInfoUrl(window.location.href, testPayId, testOrderId) const backUrl = Payment.createBackInfoUrl(window.location.href, testOrderId)
expect(backUrl).toContain(BACK_PAY_ID)
expect(backUrl).toContain(BACK_ORDER_ID) expect(backUrl).toContain(BACK_ORDER_ID)
expect(backUrl).toContain(testPayId.toString())
expect(backUrl).toContain(testOrderId.toString()) expect(backUrl).toContain(testOrderId.toString())
expect(backUrl).toContain(window.location.origin) expect(backUrl).toContain(window.location.origin)
}) })
......
{ {
"name": "@ydl-packages/toolkit", "name": "@ydl-packages/toolkit",
"version": "1.0.3", "version": "1.0.1-next.33",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
...@@ -4224,6 +4224,11 @@ ...@@ -4224,6 +4224,11 @@
"blueimp-md5": { "blueimp-md5": {
"version": "2.19.0" "version": "2.19.0"
}, },
"decimal.js": {
"version": "10.4.2",
"resolved": "http://npm.ydl.com/decimal.js/-/decimal.js-10.4.2.tgz",
"integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA=="
},
"jest": { "jest": {
"version": "28.1.3", "version": "28.1.3",
"dev": true, "dev": true,
......
{ {
"name": "@ydl-packages/toolkit", "name": "@ydl-packages/toolkit",
"version": "1.0.3", "version": "1.0.4",
"description": "", "description": "",
"main": "./dist/index.umd.js", "main": "./dist/index.umd.js",
"scripts": { "scripts": {
...@@ -33,8 +33,8 @@ ...@@ -33,8 +33,8 @@
"dependencies": { "dependencies": {
"axios": "^0.27.2", "axios": "^0.27.2",
"blueimp-md5": "^2.19.0", "blueimp-md5": "^2.19.0",
"decimal.js": "^10.4.2",
"js-cookie": "^3.0.1", "js-cookie": "^3.0.1",
"mathjs": "^11.0.1",
"qs": "^6.11.0" "qs": "^6.11.0"
}, },
"devDependencies": { "devDependencies": {
......
...@@ -24,7 +24,7 @@ export const UNIT_PAY = `${BASE_URL_JAVA}/api/auth/cashierV2/unityPay` ...@@ -24,7 +24,7 @@ export const UNIT_PAY = `${BASE_URL_JAVA}/api/auth/cashierV2/unityPay`
export const COMMIT_ORDER = `${BASE_URL_JAVA}/api/consult/consult/commit-order` export const COMMIT_ORDER = `${BASE_URL_JAVA}/api/consult/consult/commit-order`
export const IS_PAY = `${BASE_URL_JAVA}/api/auth/Order/isPay` export const IS_PAY = `${BASE_URL_JAVA}/api/auth/Order/orderIsPay`
export const MY_BALANCE = `${BASE_GATEWAY}/v3/uc/mybalance` export const MY_BALANCE = `${BASE_GATEWAY}/v3/uc/mybalance`
......
...@@ -5,13 +5,10 @@ export type PayMethod = { ...@@ -5,13 +5,10 @@ export type PayMethod = {
disabled: boolean disabled: boolean
} }
export const BACK_PAY_ID = 'backPayId'
export const BACK_ORDER_ID = 'backOrderId' export const BACK_ORDER_ID = 'backOrderId'
export type BackInfo = { export type BackInfo = {
orderId: number; orderId: number;
payId: number
} }
export type OrderStateCallBack = (params: BackInfo & { isPay: boolean, isLimit?: boolean }) => void export type OrderStateCallBack = (params: BackInfo & { isPay: boolean, isLimit?: boolean }) => void
...@@ -97,7 +94,6 @@ export type ToPayParams = { ...@@ -97,7 +94,6 @@ export type ToPayParams = {
/** /**
* 支付记录id, 采用余额支付的时候如果前端有此值就带过来 * 支付记录id, 采用余额支付的时候如果前端有此值就带过来
*/ */
payId?: number;
} }
export enum PayError { export enum PayError {
......
...@@ -2,11 +2,10 @@ import {UNIT_PAY, IS_PAY, MY_BALANCE, PAY_CHECK_INTERVAL} from "./API"; ...@@ -2,11 +2,10 @@ import {UNIT_PAY, IS_PAY, MY_BALANCE, PAY_CHECK_INTERVAL} from "./API";
import md5 from 'blueimp-md5' import md5 from 'blueimp-md5'
import qs from 'qs' import qs from 'qs'
import {Utils} from "@/Utils/Utils"; import {Utils} from "@/Utils/Utils";
import {bignumber, subtract} from 'mathjs' import Decimal from 'decimal.js';
import {createRequest, defaultRequest, DefaultResponse} from "@/Request/Request"; import {createRequest, defaultRequest, DefaultResponse} from "@/Request/Request";
import { import {
BACK_ORDER_ID, BACK_ORDER_ID,
BACK_PAY_ID,
BackInfo, BackInfo,
DoUnifiedParams, DoUnifiedParams,
FULL_PAY_METHODS, FULL_PAY_METHODS,
...@@ -180,7 +179,9 @@ export class Payment { ...@@ -180,7 +179,9 @@ export class Payment {
payAmount = totalAmount payAmount = totalAmount
} else if (balance > 0 && balance < totalAmount) { } else if (balance > 0 && balance < totalAmount) {
payBalance = balance; payBalance = balance;
payAmount = totalAmount - balance; const x = new Decimal(totalAmount);
const y = new Decimal(balance);
payAmount = Number(x.minus(y));
} else { } else {
payBalance = totalAmount payBalance = totalAmount
} }
...@@ -188,7 +189,7 @@ export class Payment { ...@@ -188,7 +189,7 @@ export class Payment {
} }
async toPay(params: ToPayParams): Promise<ToPayReturns> { async toPay(params: ToPayParams): Promise<ToPayReturns> {
const {totalAmount, payType, returnUrl, orderId, redirectUrl, payId} = params const {totalAmount, payType, returnUrl, orderId, redirectUrl} = params
let quitUrl = params.quitUrl let quitUrl = params.quitUrl
// validate start >>> // validate start >>>
switch (payType) { switch (payType) {
...@@ -256,7 +257,6 @@ export class Payment { ...@@ -256,7 +257,6 @@ export class Payment {
quitUrl, quitUrl,
orderId, orderId,
payType, payType,
payId,
payAmount, payAmount,
payBalance payBalance
} }
...@@ -337,7 +337,7 @@ export class Payment { ...@@ -337,7 +337,7 @@ export class Payment {
static async loopValidateOrderState(count = 0, callBack: OrderStateCallBack, pollTime = 3000): Promise<void> { static async loopValidateOrderState(count = 0, callBack: OrderStateCallBack, pollTime = 3000): Promise<void> {
const [, queryString] = window.location.href.split('?') const [, queryString] = window.location.href.split('?')
const query = queryString ? qs.parse(queryString, {ignoreQueryPrefix: true}) : {} const query = queryString ? qs.parse(queryString, {ignoreQueryPrefix: true}) : {}
const returnParams: BackInfo = {payId: Number(query[BACK_PAY_ID]), orderId: Number(query[BACK_ORDER_ID])} const returnParams: BackInfo = {orderId: Number(query[BACK_ORDER_ID])}
let timer: any = null; let timer: any = null;
const checkLoop = () => { const checkLoop = () => {
if (--count > 0) { if (--count > 0) {
...@@ -349,10 +349,10 @@ export class Payment { ...@@ -349,10 +349,10 @@ export class Payment {
timer && clearTimeout(timer) timer && clearTimeout(timer)
} }
} }
if (query[BACK_PAY_ID]) { if (query[BACK_ORDER_ID]) {
try { try {
const res = await requestForJava.post<Record<string, string>, DefaultResponse>(IS_PAY, { const res = await requestForJava.post<Record<string, string>, DefaultResponse>(IS_PAY, {
payId: query[BACK_PAY_ID] orderId: query[BACK_ORDER_ID]
}) })
if (res.code === '200' && res.data === true) { if (res.code === '200' && res.data === true) {
callBack({isPay: true, ...returnParams}) callBack({isPay: true, ...returnParams})
...@@ -369,13 +369,11 @@ export class Payment { ...@@ -369,13 +369,11 @@ export class Payment {
/** /**
* 创建订单查询页面链接, 返回的url不做encode处理 * 创建订单查询页面链接, 返回的url不做encode处理
* @param url * @param url
* @param backPayId
* @param backOrderId * @param backOrderId
*/ */
static createBackInfoUrl(url: string, backPayId: number, backOrderId: number): string { static createBackInfoUrl(url: string, backOrderId: number): string {
const [path, queryString] = url.split('?') const [path, queryString] = url.split('?')
const query = queryString ? qs.parse(queryString, {ignoreQueryPrefix: true}) : {} const query = queryString ? qs.parse(queryString, {ignoreQueryPrefix: true}) : {}
query[BACK_PAY_ID] = backPayId.toString()
query[BACK_ORDER_ID] = backOrderId.toString() query[BACK_ORDER_ID] = backOrderId.toString()
return `${path}?${qs.stringify(query)}` return `${path}?${qs.stringify(query)}`
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment