邮储音视频更新

This commit is contained in:
xiaogang 2025-01-20 14:18:48 +08:00
parent cbc62f1d57
commit 273a23a53c
16 changed files with 143 additions and 134 deletions

8
.env
View File

@ -1,7 +1,7 @@
# 邮储奶茶活动 # 邮储奶茶活动
# VITE_YCNC_APPID = '2vikrqptiia9pe9bf5ztrd' VITE_YCNC_APPID = '2vikrqptiia9pe9bf5ztrd'
# VITE_YCNC_SECRET = '6fpfwdkgcggyk0yf2yb6bt' VITE_YCNC_SECRET = '6fpfwdkgcggyk0yf2yb6bt'
# 邮储音视频 # 邮储音视频
VITE_YCNC_APPID = '2vi3695tiia9pe9bf5yyyi' # VITE_YCNC_APPID = '2vi3695tiia9pe9bf5yyyi'
VITE_YCNC_SECRET = '6fpf26837kmgr0yf2yf643' # VITE_YCNC_SECRET = '6fpf26837kmgr0yf2yf643'

View File

@ -5,5 +5,5 @@ NODE_ENV = 'development'
# VITE_BASE_URL = 'http://milk.api.test.86698.cn' # VITE_BASE_URL = 'http://milk.api.test.86698.cn'
# VITE_BASE_URL = 'http://milk.test.api.cdlsxd.cn' # VITE_BASE_URL = 'http://milk.test.api.cdlsxd.cn'
# 邮储音视频 # 邮储音视频
VITE_BASE_URL = 'http://192.168.110.128:8000/ycav' VITE_BASE_URL = 'https://gateway.dev.cdlsxd.cn'
# VITE_BASE_URL = 'https://gateway.dev.cdlsxd.cn/ycav' # VITE_BASE_URL = 'https://gateway.dev.cdlsxd.cn/ycav'

View File

@ -5,7 +5,7 @@ import path from 'path'
const config = { const config = {
pages:'./src/pages', pages:'./src/pages',
pagesInclude:['ycysp/home.vue','ycysp/pay.vue','ycysp/order.vue','ycysp/orderDetail.vue',] pagesInclude:['ycysp/home.vue','ycysp/pay.vue','ycysp/order.vue','ycysp/orderDetail.vue',]
// pagesInclude:['ycnc',] // pagesInclude:['ycnc']
} }
const { pages, pagesInclude } = config const { pages, pagesInclude } = config

View File

@ -18,15 +18,15 @@
<script type="module" src="/src/main.js"></script> <script type="module" src="/src/main.js"></script>
<script src="./static/YT_Client_api.js"></script> <script src="./static/YT_Client_api.js"></script>
<script> <script>
// document.addEventListener('touchmove', function(e) { document.addEventListener('touchmove', function(e) {
// e.preventDefault(); e.preventDefault();
// }, {passive: false}) }, {passive: false})
</script> </script>
<script src="https://fastly.jsdelivr.net/npm/eruda"></script> <!-- <script src="https://fastly.jsdelivr.net/npm/eruda"></script>
<script> <script>
eruda.init() eruda.init()
</script> </script> -->
<!-- <script> <script>
var clickCount = 0 var clickCount = 0
var timer = null var timer = null
var isShow = false var isShow = false
@ -63,7 +63,7 @@
clickCount = 0 // 重置点击计数 clickCount = 0 // 重置点击计数
} }
} }
}) --> })
</script> </script>
</body> </body>
</html> </html>

View File

@ -119,9 +119,12 @@
async function pay(orderData){ async function pay(orderData){
console.log(orderData); console.log(orderData);
const {order_no,notify_url,price,brand,sign,plain_text} = orderData; const {order_no,notify_url,price,brand,sign,plain_text,id} = orderData;
const queryParams = {order_no} const params = {
const res = await queryOrderDetail({queryParams}) order_id:id,
order_no: order_no
}
const res = await queryOrderDetail({params})
if(res.third_status === '03'){ if(res.third_status === '03'){
uni.showToast({ uni.showToast({
title: '当前订单已支付成功,无需再支付~', title: '当前订单已支付成功,无需再支付~',

View File

@ -158,9 +158,12 @@ const goRefund = () => {
async function pay(orderData) { async function pay(orderData) {
console.log(orderData); console.log(orderData);
const { order_no, notify_url, price,brand,sign,plain_text } = orderData; const { order_no, notify_url, price,brand,sign,plain_text,id } = orderData;
const queryParams = {order_no} const params = {
const res = await queryOrderDetail({queryParams}) order_id:id,
order_no: order_no
}
const res = await queryOrderDetail({params})
if(res.third_status === '03'){ if(res.third_status === '03'){
uni.showToast({ uni.showToast({
title: '当前订单已支付成功,无需再支付~', title: '当前订单已支付成功,无需再支付~',

View File

@ -95,14 +95,6 @@ function goDetail(e) {
emits("detail-event", props.detail); emits("detail-event", props.detail);
} }
function goPwd(e) {
if (e.stopPropagation) {
//W3C
e.stopPropagation();
}
emits("pwd-event", props.detail);
}
function goDel(e) { function goDel(e) {
if (e.stopPropagation) { if (e.stopPropagation) {
//W3C //W3C

View File

@ -35,6 +35,7 @@ export const stateConfig = {
7: "退款成功", 7: "退款成功",
8: "充值成功", 8: "充值成功",
9: "订单作废", 9: "订单作废",
10:'支付失败'
}; };
export const stateColor = { export const stateColor = {
@ -42,7 +43,8 @@ export const stateColor = {
3: "#FF8400", 3: "#FF8400",
4: "#FF0000", 4: "#FF0000",
7: "#EA722D", 7: "#EA722D",
8: "#FF0000 ", 8: "#FF0000",
10: "#FF0000"
}; };
export const checkedColor = { export const checkedColor = {

View File

@ -62,7 +62,7 @@
<view class="input-container"> <view class="input-container">
<input <input
type="text" type="text"
placeholder="请输入手机号/QQ号充值" placeholder="请输入手机号充值"
placeholder-class="pcs" placeholder-class="pcs"
v-model="account" v-model="account"
/> />
@ -88,9 +88,9 @@
>如因账号信息输入错误导致充值至他人账户仍视为充值成功无法补券</view >如因账号信息输入错误导致充值至他人账户仍视为充值成功无法补券</view
> >
<view class="small-text" <view class="small-text"
>3此权益中包含的优酷/腾讯黄金会员芒果视频会员可在手机电脑平板上使用不支持电视端不支持投屏<text >3此权益中包含的优酷黄金会员芒果视频会员可在手机电脑平板上使用不支持电视端不支持投屏<text
class="small-red" class="small-red"
>腾讯视频QQ音乐支持QQ号或手机号</text >QQ音乐支持QQ号或手机号</text
>其余会员账号均为手机号</view >其余会员账号均为手机号</view
> >
<view class="small-text" <view class="small-text"
@ -118,12 +118,12 @@ import { ref, reactive, unref, onMounted, nextTick } from "vue";
import member from "./components/member.vue"; import member from "./components/member.vue";
import rechargeItem from "./components/recharge-item.vue"; import rechargeItem from "./components/recharge-item.vue";
import { getBrandList, getProductList, login } from "@/api/ycysp"; import { getBrandList, getProductList, login } from "@/api/ycysp";
import { generateUUID } from "@/utils/utils"; // import { generateUUID } from "@/utils/utils";
import { createOrder } from "@/api/ycysp"; import { createOrder } from "@/api/ycysp";
import useCode from "./hooks/useCode"; import useCode from "./hooks/useCode";
const reg = // const reg =
/^(((13[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(17[3-8]{1})|(18[0-9]{1})|(19[0-9]{1})|(14[5-7]{1}))+\d{8})$/; // /^(((13[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(17[3-8]{1})|(18[0-9]{1})|(19[0-9]{1})|(14[5-7]{1}))+\d{8})$/;
const _reg = /^[1-9][0-9]{4,}$/; // const _reg = /^[1-9][0-9]{4,}$/;
const brandArr = ref([]); const brandArr = ref([]);
const productArr = ref([]); const productArr = ref([]);
const account = ref(""); const account = ref("");
@ -201,18 +201,18 @@ const nextEvent = () => {
} }
if (!account.value) { if (!account.value) {
uni.showToast({ uni.showToast({
title: "请填写充值手机号或QQ号", title: "请填写充值手机号",
icon: "none",
});
return;
}
if (!reg.test(account.value) && !_reg.test(account.value)) {
uni.showToast({
title: "充值账号格式不正确",
icon: "none", icon: "none",
}); });
return; return;
} }
// if (!reg.test(account.value)) {
// uni.showToast({
// title: ",",
// icon: "none",
// });
// return;
// }
addOrder(selectProduct.id); addOrder(selectProduct.id);
}; };

View File

@ -1,29 +1,29 @@
import md5 from 'js-md5'; import md5 from "js-md5";
export default function useCode(){ export default function useCode() {
return new Promise((resolve,reject) => { return new Promise((resolve, reject) => {
const authCallback = (params) => { const authCallback = (params) => {
console.log('authCallback-use',params); console.log("authCallback-use", params);
const {code} = params const { code } = params;
resolve(code) resolve(code);
} };
const getNewAuthorization = () => { const getNewAuthorization = () => {
let appId = import.meta.env.VITE_YCNC_APPID; let appId = import.meta.env.VITE_YCNC_APPID;
let time = Date.now().toString(); let time = Date.now().toString();
let secret = import.meta.env.VITE_YCNC_SECRET; let secret = import.meta.env.VITE_YCNC_SECRET;
let signBefore = appId + time + secret; let signBefore = appId + time + secret;
let sign = md5(signBefore);//普通md5 let sign = md5(signBefore); //普通md5
let param = { let param = {
appId: appId, appId: appId,
sign: sign, sign: sign,
time: time, time: time,
tran_code: "157", tran_code: "157",
fn: "authCallback", fn: "authCallback",
needBind: "" needBind: "",
}; };
console.log('auth-param157-use',param); console.log("auth-param157-use", param);
Fw.device.api.getNewAuthorization(param) Fw.device.api.getNewAuthorization(param);
}; };
window.authCallback = authCallback; window.authCallback = authCallback;
getNewAuthorization() getNewAuthorization();
}) });
} }

View File

@ -1,41 +1,45 @@
import dayjs from "dayjs"; import dayjs from "dayjs";
import md5 from 'js-md5'; import md5 from "js-md5";
const handleParams = (obj) => Object.entries(obj).reduce((total,curr) => { const handleParams = (obj) =>
if(!total){ Object.entries(obj).reduce((total, curr) => {
total += `${curr[0]}=${curr[1]}` if (!total) {
}else{ total += `${curr[0]}=${curr[1]}`;
total += `|${curr[0]}=${curr[1]}` } else {
total += `|${curr[0]}=${curr[1]}`;
} }
return total return total;
},'') }, "");
export default function usePay() {
export default function usePay(){ const payFunc = (args) => {
const payFunc = (args) => { const { order_no, notify_url, TranAmt, MerName, sign, plain_text } = args;
const {order_no,notify_url,TranAmt,MerName,sign,plain_text} = args; const MercCode = import.meta.env.VITE_YCNC_MERCH_CODE;
const MercCode = import.meta.env.VITE_YCNC_MERCH_CODE const tranAmt = Number(TranAmt).toFixed(2);
const tranAmt = Number(TranAmt).toFixed(2) const Plain = {
const Plain = { MercUrl: notify_url,
MercUrl:notify_url, TranAmt: tranAmt,
TranAmt:tranAmt, TermSsn: order_no,
TermSsn:order_no, BackLink: encodeURIComponent(
BackLink:encodeURIComponent(`${window.location.origin}${window.location.pathname || ''}/#/pages/ycysp/orderDetail?order_no=${order_no}&isPayBack=true`), `${window.location.origin}${
psbcmcc:'LSXD', window.location.pathname || ""
TxnDt:dayjs(Date.now()).format('YYYY-MM-DD'), }/#/pages/ycysp/orderDetail?order_no=${order_no}&isPayBack=true`
MercCode:MercCode, ),
IsIntegral:'1', psbcmcc: "LSXD",
MerName:MerName, TxnDt: dayjs(Date.now()).format("YYYY-MM-DD"),
} MercCode: MercCode,
const params = { IsIntegral: "1",
Plain:handleParams(Plain), MerName: MerName,
plainText:plain_text, };
sign:sign, const params = {
Signature: '', Plain: handleParams(Plain),
} plainText: plain_text,
console.log('CodePay-plain',Plain); sign: sign,
console.log('CodePay-params',params); Signature: "",
Fw.device.api.handCodePay(params); };
} console.log("CodePay-plain", Plain);
return {payFunc} console.log("CodePay-params", params);
Fw.device.api.handCodePay(params);
};
return { payFunc };
} }

View File

@ -25,7 +25,6 @@
:detail="ele" :detail="ele"
@pay-event="pay" @pay-event="pay"
@detail-event="viewDetail" @detail-event="viewDetail"
@pwd-event="viewPwd"
@del-event="removeOrder" @del-event="removeOrder"
@refund-event="refund" @refund-event="refund"
/> />
@ -123,16 +122,6 @@ function viewDetail(orderData) {
}); });
} }
function viewPwd(orderData) {
const { voucher_link } = orderData;
if (voucher_link) {
console.log("跳转外部链接--->", voucher_link);
window.location.href = voucher_link;
} else {
console.error(`${voucher_link}无有效值`);
}
}
function removeOrder(orderData) { function removeOrder(orderData) {
message message
.confirm({ .confirm({

View File

@ -90,10 +90,11 @@
<script setup> <script setup>
import { onShow, onHide, onUnload } from "@dcloudio/uni-app"; import { onShow, onHide, onUnload } from "@dcloudio/uni-app";
import { onMounted, reactive, ref, unref } from "vue"; import { onMounted, reactive, ref, unref } from "vue";
import { getOrderList, refundOrder } from "@/api/ycysp"; import { getOrderList, refundOrder,login } from "@/api/ycysp";
import { getQueryString } from "@/utils/utils"; import { getQueryString } from "@/utils/utils";
import { stateConfig, stateColor } from "./config"; import { stateConfig, stateColor } from "./config";
import usePay from "./hooks/usePay"; import usePay from "./hooks/usePay";
import useCode from "./hooks/useCode";
const id = ref(""); const id = ref("");
const orderNo = ref(""); const orderNo = ref("");
@ -156,7 +157,7 @@ function maskPhoneNumber(phoneNumber) {
} }
function pay(orderData) { function pay(orderData) {
const { order_no, notify_url,sign, plain_text } = orderData; const { order_no, notify_url,sign, plain_text } = orderData.pay_info;
const price = orderData.order_amount const price = orderData.order_amount
const MerName = orderData.brandName const MerName = orderData.brandName
const { payFunc } = usePay(); const { payFunc } = usePay();
@ -170,7 +171,13 @@ function pay(orderData) {
}); });
} }
const getDetail = () => { const getDetail = async () => {
const token = window.localStorage.getItem('token') || '';
if(!token){
const code = await useCode();
const {token} = await login({params:{code:code}});
window.localStorage.setItem('token',token);
}
const params = { const params = {
id: unref(id), id: unref(id),
order_no: unref(orderNo), order_no: unref(orderNo),

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -1,8 +1,12 @@
//邮储银行专用的 //邮储银行(奶茶)专用的
import useCode from "../pages/ycnc/hooks/useCode"; // import useCode from "../pages/ycnc/hooks/useCode";
import {login} from '../api/ycnc' // import {login} from '../api/ycnc'
//邮储音视频baseURL生产环境 //邮储银行(音视频)专用的
import useCode from "../pages/ycysp/hooks/useCode";
import {login} from '../api/ycysp'
//邮储音视频baseURL专用
const baseURL = '/ycav' const baseURL = '/ycav'
function http(options) { function http(options) {
@ -11,9 +15,11 @@ function http(options) {
mask: true, mask: true,
}); });
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
//邮储音视频添加前缀
const newOptions = {...options,url:baseURL + options.url}
uni.request({ uni.request({
...options, ...newOptions,
url:baseURL + options.url, // ...options
header: { header: {
//邮储音视频 //邮储音视频
'content-type': 'application/json', 'content-type': 'application/json',
@ -34,17 +40,21 @@ function http(options) {
if(res.data?.code >= 200 && res.data?.code < 300){ if(res.data?.code >= 200 && res.data?.code < 300){
setTimeout(()=>{ setTimeout(()=>{
uni.hideLoading() uni.hideLoading()
},500) },300)
resolve(res.data.data) resolve(res.data.data)
}else if(res.data?.code === 401){ }else if(res.data?.code === 401){
//邮储银行专用的
const authCode = await useCode(); const authCode = await useCode();
const params = {code:authCode}; const params = {code:authCode};
const {token} = await login({params}); const {token} = await login({params});
window.localStorage.setItem('token',token); window.localStorage.setItem('token',token);
http(options).then(ress => { //邮储音视频专用的
resolve(ress) http(newOptions).then(_res => {
resolve(_res)
}) })
//邮储奶茶
// http(options).then(_res => {
// resolve(_res)
// })
}else{ }else{
uni.hideLoading().then(() => { uni.hideLoading().then(() => {
uni.showToast({ uni.showToast({

View File

@ -15,7 +15,6 @@ const timeStringNow = dayjs().format("MM-DD HH-mm-ss")
export default defineConfig(({ command, mode }) => { export default defineConfig(({ command, mode }) => {
const { UNI_PLATFORM } = process.env // 得到 mp-weixin, h5, app 等 const { UNI_PLATFORM } = process.env // 得到 mp-weixin, h5, app 等
return { return {
// base:'/ycvideoh5/', //ycysp
base:'./', base:'./',
plugins: [ plugins: [
UniPages({ UniPages({