feat(aigc): pass wechat login code to generator task requests
Refactor the shared wechat login code utility by moving it from the recharge service to a standalone module. Add the sensitive request flag to the createAigcGeneratorTask POST API call. Update the aigc detail and template use pages to fetch and pass the wechat login code when creating generation tasks. Remove the redundant login code implementation from the recharge payment service.
This commit is contained in:
@@ -32,6 +32,7 @@ import { onLoad, onShareAppMessage, onShow } from "@dcloudio/uni-app";
|
|||||||
import Privacy from "@/components/Privacy/index.vue";
|
import Privacy from "@/components/Privacy/index.vue";
|
||||||
import AigcTopBar from "@/pages-aigc/components/AigcTopBar/index.vue";
|
import AigcTopBar from "@/pages-aigc/components/AigcTopBar/index.vue";
|
||||||
import { useCurrentCredit } from "@/pages-aigc/hooks/useCurrentCredit.js";
|
import { useCurrentCredit } from "@/pages-aigc/hooks/useCurrentCredit.js";
|
||||||
|
import { getWechatLoginCode } from "@/pages-aigc/services/wechatLogin.js";
|
||||||
import {
|
import {
|
||||||
createAigcGeneratorTask,
|
createAigcGeneratorTask,
|
||||||
createAigcGeneratorTaskShare,
|
createAigcGeneratorTaskShare,
|
||||||
@@ -542,9 +543,11 @@ const handleConfirmRegenerate = async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
const wxLoginCode = await getWechatLoginCode();
|
||||||
const res = await createAigcGeneratorTask({
|
const res = await createAigcGeneratorTask({
|
||||||
templateItemId,
|
templateItemId,
|
||||||
imageUrlList: [imageResultUrl],
|
imageUrlList: [imageResultUrl],
|
||||||
|
wxLoginCode,
|
||||||
});
|
});
|
||||||
const nextTaskId = String(res?.data || "").trim();
|
const nextTaskId = String(res?.data || "").trim();
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import {
|
|||||||
normalizeWechatClientPlatform,
|
normalizeWechatClientPlatform,
|
||||||
} from "../utils/virtualRecharge.js";
|
} from "../utils/virtualRecharge.js";
|
||||||
|
|
||||||
|
export { getWechatLoginCode } from "../../services/wechatLogin.js";
|
||||||
|
|
||||||
const MIN_VIRTUAL_PAYMENT_SDK_VERSION = "2.19.2";
|
const MIN_VIRTUAL_PAYMENT_SDK_VERSION = "2.19.2";
|
||||||
|
|
||||||
const getWechatApi = () => {
|
const getWechatApi = () => {
|
||||||
@@ -65,26 +67,6 @@ export function getWechatClientPlatform(wechatApi = getWechatApi()) {
|
|||||||
return clientPlatform;
|
return clientPlatform;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getWechatLoginCode(wechatApi = getWechatApi()) {
|
|
||||||
if (!wechatApi || typeof wechatApi.login !== "function") {
|
|
||||||
return Promise.reject(new Error("当前环境无法获取微信登录凭证"));
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
wechatApi.login({
|
|
||||||
success: (result) => {
|
|
||||||
const code = String(result?.code || "").trim();
|
|
||||||
if (code) {
|
|
||||||
resolve(code);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
reject(new Error("微信登录凭证获取失败"));
|
|
||||||
},
|
|
||||||
fail: () => reject(new Error("微信登录凭证获取失败")),
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export function requestWechatVirtualPayment(paymentData, wechatApi = getWechatApi()) {
|
export function requestWechatVirtualPayment(paymentData, wechatApi = getWechatApi()) {
|
||||||
assertWechatVirtualPaymentCapability(wechatApi);
|
assertWechatVirtualPaymentCapability(wechatApi);
|
||||||
const order = normalizeVirtualPaymentOrder(paymentData);
|
const order = normalizeVirtualPaymentOrder(paymentData);
|
||||||
|
|||||||
26
src/pages-aigc/services/wechatLogin.js
Normal file
26
src/pages-aigc/services/wechatLogin.js
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
const getWechatApi = () => {
|
||||||
|
// #ifdef MP-WEIXIN
|
||||||
|
if (typeof wx !== "undefined") return wx;
|
||||||
|
// #endif
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
export function getWechatLoginCode(wechatApi = getWechatApi()) {
|
||||||
|
if (!wechatApi || typeof wechatApi.login !== "function") {
|
||||||
|
return Promise.reject(new Error("当前环境无法获取微信登录凭证"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
wechatApi.login({
|
||||||
|
success: (result) => {
|
||||||
|
const code = String(result?.code || "").trim();
|
||||||
|
if (code) {
|
||||||
|
resolve(code);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
reject(new Error("微信登录凭证获取失败"));
|
||||||
|
},
|
||||||
|
fail: () => reject(new Error("微信登录凭证获取失败")),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -46,6 +46,7 @@ import { onLoad, onShow } from "@dcloudio/uni-app";
|
|||||||
import Privacy from "@/components/Privacy/index.vue";
|
import Privacy from "@/components/Privacy/index.vue";
|
||||||
import AigcTopBar from "@/pages-aigc/components/AigcTopBar/index.vue";
|
import AigcTopBar from "@/pages-aigc/components/AigcTopBar/index.vue";
|
||||||
import { useCurrentCredit } from "@/pages-aigc/hooks/useCurrentCredit.js";
|
import { useCurrentCredit } from "@/pages-aigc/hooks/useCurrentCredit.js";
|
||||||
|
import { getWechatLoginCode } from "@/pages-aigc/services/wechatLogin.js";
|
||||||
import {
|
import {
|
||||||
createAigcGeneratorTask,
|
createAigcGeneratorTask,
|
||||||
getAigcTemplateItemList,
|
getAigcTemplateItemList,
|
||||||
@@ -356,9 +357,11 @@ const handleGenerate = async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
const wxLoginCode = await getWechatLoginCode();
|
||||||
const res = await createAigcGeneratorTask({
|
const res = await createAigcGeneratorTask({
|
||||||
templateItemId,
|
templateItemId,
|
||||||
imageUrlList: [uploadedImageUrl.value],
|
imageUrlList: [uploadedImageUrl.value],
|
||||||
|
wxLoginCode,
|
||||||
});
|
});
|
||||||
|
|
||||||
const taskId = String(res?.data || "").trim();
|
const taskId = String(res?.data || "").trim();
|
||||||
|
|||||||
@@ -17,7 +17,11 @@ function getAigcGeneratorTaskDetail(args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function createAigcGeneratorTask(args) {
|
function createAigcGeneratorTask(args) {
|
||||||
return request.post("/hotelBiz/aigcGeneratorTask/createAigcGeneratorTask", args);
|
return request.post(
|
||||||
|
"/hotelBiz/aigcGeneratorTask/createAigcGeneratorTask",
|
||||||
|
args,
|
||||||
|
{ sensitive: true }
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCurrentCredit() {
|
function getCurrentCredit() {
|
||||||
|
|||||||
Reference in New Issue
Block a user