行业电子凭证接入
- 新增 4 个回调接口:send-code/destroy-code/query-code/consume-code - 支持快手开放平台 MD5/HMAC_SHA256 签名验签 - send-code 回调自动创建 order/order_items/fulfillment_tasks/profiles - consume-code 回调与既有 flow.consume 结构兼容 - isKuaishouCloudTask 同时匹配 kuaishou-industry executor_key - claim 页面自动验证行业凭证 task,跳过核销码输入 - 退回时行业 task 跳过快手核销 API - 新增 KUASHOU_INDUSTRY_* 环境变量配置
This commit is contained in:
@@ -5,9 +5,16 @@ export const KUAISHOU_CLOUD_FIXED_VN_KEY = '1'
|
||||
|
||||
export type JsonObject = Record<string, any>
|
||||
|
||||
const KUAISHOU_CLOUD_EXECUTOR_KEYS = new Set(['kuaishou_ct_assisted', 'kuaishou-industry'])
|
||||
|
||||
export function isKuaishouCloudTask(task: unknown) {
|
||||
const source = task && typeof task === 'object' ? (task as JsonObject) : {}
|
||||
return String(source.executor_key || '').trim() === 'kuaishou_ct_assisted'
|
||||
return KUAISHOU_CLOUD_EXECUTOR_KEYS.has(String(source.executor_key || '').trim())
|
||||
}
|
||||
|
||||
export function isIndustryEVoucherTask(task: unknown) {
|
||||
const source = task && typeof task === 'object' ? (task as JsonObject) : {}
|
||||
return String(source.executor_key || '').trim() === 'kuaishou-industry'
|
||||
}
|
||||
|
||||
export function normalizeKuaishouCloudFlow(value: unknown) {
|
||||
|
||||
@@ -24,6 +24,7 @@ import {
|
||||
} from "../../platforms/kuaishou-eticket/source-config-service.js";
|
||||
import {
|
||||
isKuaishouCloudTask,
|
||||
isIndustryEVoucherTask,
|
||||
maskCode,
|
||||
maskPhone,
|
||||
normalizeKuaishouCloudFlow,
|
||||
@@ -793,10 +794,15 @@ export async function returnKuaishouCloudFulfillmentTask(
|
||||
let nextResultCode = "kuaishou_cloud_completed";
|
||||
let nextResultMessage = "cloudtentacles 发货、退号并完成快手核销";
|
||||
const consumeAlreadyCompleted = flow.consume.status === "success";
|
||||
const isIndustryTask = isIndustryEVoucherTask(task)
|
||||
|
||||
if (consumeAlreadyCompleted) {
|
||||
consumeStatus = "success";
|
||||
consumedAt = flow.consume.consumedAt || now;
|
||||
} else if (isIndustryTask) {
|
||||
consumeStatus = "success";
|
||||
consumedAt = flow.consume.consumedAt || now;
|
||||
consumeErrorMessage = "行业电子凭证核销由平台回调处理,已跳过主动核销";
|
||||
} else if (!order) {
|
||||
consumeStatus = "failed";
|
||||
consumeErrorMessage = "任务关联订单不存在,无法执行快手核销";
|
||||
|
||||
Reference in New Issue
Block a user