sdk:37ios支付及退款

This commit is contained in:
luying
2022-03-31 16:15:49 +08:00
parent 9da83c56be
commit 76fe3adb7f
15 changed files with 275 additions and 14 deletions

View File

@@ -56,6 +56,7 @@ export class orderHandler {
let sdkOrderInfo = null;//客户端需要的平台订单信息
switch (payType) {
case PAY_TYPE.THREE_SEVEN:
case PAY_TYPE.THREE_SEVEN_IOS:
{
let pay37Order = await applyOrder37(localOrderID, roleId, productInfo);
if (pay37Order.code == -1) {

View File

@@ -1,6 +1,6 @@
import { Application, ChannelService, HandlerService, } from 'pinus';
import { reloadResources } from '../../../pubUtils/data';
import { settleOrderFromRedisPub } from '../../../services/orderService';
import { refundOrderFromRedisPub, settleOrderFromRedisPub } from '../../../services/orderService';
import { getServerMainten, setServerMainten, stopServerMainten } from '../../../services/gmService';
import { taflush } from '../../../services/sdkService';
import { errlogger } from '../../../util/logger';
@@ -38,6 +38,14 @@ export class OrderRemote {
}
}
public async refundOrderFromRedisPub(message: string) {
try {
await refundOrderFromRedisPub(message);
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public setServerMainten(serverIds: number[], startTime: number, endTime: number) {
try {
setServerMainten(serverIds, startTime, endTime);

View File

@@ -278,5 +278,32 @@ export async function settleOrderFromRedisPub(message: string) {
let result = await settleOrder(order, params.sid);
await UserOrderModel.saveOrderID(order.roleId, order.localOrderID, aliOrderID, JSON.stringify(result));
return true
}
export async function refundOrderFromRedisPub(message: string) {
console.log('**********refundOrderFromRedisPub*******')
console.log('message: ', message);
let params: PayCallback37Data;
try {
params = JSON.parse(message);
} catch(e) {
return false;
}
let order = await UserOrderModel.findOrder(params.order_no);
if(!order || order.state != ORDER_STATE.CHECK_TO_REFUND) {
console.log('订单状态错误');
return false;
}
if(order.roleId != params.actor_id) {
console.log('订单玩家错误');
return false;
}
await UserOrderModel.refund(order.roleId, order.localOrderID, message);
return true
}

View File

@@ -542,9 +542,10 @@ export async function redisSubScribe() {
let env = pinus.app.get('env');
if(env == 'development') env = 'local'; // 本地处理
let payChannel = getRedisSubChannel(REDIS_KEY.PAY_CHANNEL, env);
let refundChannel = getRedisSubChannel(REDIS_KEY.REFUND_CHANNEL, env);
let treatRoleChannel = getRedisSubChannel(REDIS_KEY.TREAT_ROLE_CHANNEL, env);
let treatGuildChannel = getRedisSubChannel(REDIS_KEY.TREAT_GUILD_CHANNEL, env);
await redisClientPub().subscribeAsync(payChannel, treatRoleChannel, treatGuildChannel);
await redisClientPub().subscribeAsync(payChannel, treatRoleChannel, treatGuildChannel, refundChannel);
redisClientPub().on('message', (channel, message) => {
console.log('**********redisSubScribe*******')
console.log('channel: ', channel, payChannel);
@@ -561,6 +562,11 @@ export async function redisSubScribe() {
let servers = pinus.app.getServersByType('guild');
let server = getRandSingleEelm(servers);
pinus.app.rpc.guild.guildRemote.treatGuildName.toServer(server.id, message);
} else if (channel == refundChannel) {
let servers = pinus.app.getServersByType('order');
let server = getRandSingleEelm(servers);
pinus.app.rpc.order.orderRemote.refundOrderFromRedisPub.toServer(server.id, message);
}
});
}