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

@@ -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);
}
});
}