40 lines
2.0 KiB
TypeScript
40 lines
2.0 KiB
TypeScript
import { OpSchema as Refund, UpdateOperationData as RefundUpdateData } from "../../../oak-app-domain/Refund/Schema";
|
|
import { EntityDict } from "../../../oak-app-domain";
|
|
import { OpSchema as Pay, UpdateOperationData as PayUpdateData } from "../../../oak-app-domain/Pay/Schema";
|
|
import PayClazz from "../../../types/PayClazz";
|
|
import { BRC } from "../../../types/RuntimeCxt";
|
|
import { Schema as WpProduct } from '../../../oak-app-domain/WpProduct/Schema';
|
|
export declare function registerGetPayStateResult(payState: NonNullable<EntityDict['pay']['OpSchema']['iState']>): void;
|
|
export default class WechatPay implements PayClazz {
|
|
wpProduct: WpProduct;
|
|
constructor(wpProduct: WpProduct);
|
|
decodeRefundNotification(params: Record<string, any>, body: any): Promise<{
|
|
refundId: string;
|
|
iState: EntityDict['refund']['OpSchema']['iState'];
|
|
extra?: RefundUpdateData | undefined;
|
|
price?: number | undefined;
|
|
}>;
|
|
getAccountEntity(): [string, string];
|
|
getAccountAmount(context: BRC): Promise<number>;
|
|
calcTransferTax(price: number): [number, string, string];
|
|
calcRefundTax(price: number): [number, string, string];
|
|
calcPayTax(price: number): [number, string, string];
|
|
refund(refund: Refund, context: BRC): Promise<RefundUpdateData | undefined>;
|
|
getRefundState(refund: Refund): Promise<[EntityDict['refund']['OpSchema']['iState'], RefundUpdateData | undefined]>;
|
|
decodePayNotification(params: Record<string, any>, body: any): Promise<{
|
|
payId: string;
|
|
iState: EntityDict['pay']['OpSchema']['iState'];
|
|
extra?: PayUpdateData | undefined;
|
|
}>;
|
|
/**
|
|
* 参照微信支付prepay接口模拟返回
|
|
* @param pay
|
|
* @param data
|
|
* @param context
|
|
*/
|
|
prepay(pay: Pay, data: PayUpdateData, context: BRC): Promise<void>;
|
|
getState(pay: Pay): Promise<[EntityDict['pay']['OpSchema']['iState'], PayUpdateData]>;
|
|
getRefundableAt(successAt: number): number;
|
|
close(pay: Pay): Promise<void>;
|
|
}
|