Compare commits

...

3 Commits

Author SHA1 Message Date
YunaiV 9ede13e82e fix: 修复客服新会话消息超出可视区域 2026-06-08 08:54:55 +08:00
YunaiV 84a9fb5c78 feat: 支持 H5 公众号微信商家转账确认收款 2026-06-08 08:43:43 +08:00
YunaiV 8338321786 fix(mall): 校验售后申请类型必填
- 后端售后申请接口启用请求体参数校验
- 前端申请售后提交前校验售后类型
- 修正售后类型 radio 选中态绑定字段
2026-06-07 23:15:32 +08:00
5 changed files with 83 additions and 4 deletions

View File

@ -253,8 +253,8 @@
.message-container { .message-container {
width: 100%; width: 100%;
/* 确保容器至少有一屏高度 */ /* 倒置滚动区内,容器高度只需要撑满聊天区域 */
min-height: 100vh; min-height: v-bind(chatScrollHeight);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: flex-end; justify-content: flex-end;

View File

@ -229,7 +229,7 @@
} }
let openid; let openid;
if (state.accountInfo.type === '5') { if (state.accountInfo.type === '5') {
openid = await sheep.$platform.useProvider('wechat').getOpenid(); openid = await sheep.$platform.useProvider('wechat').getOpenid(true);
// openid // openid
if (!openid) { if (!openid) {
goBindWeixin(); goBindWeixin();

View File

@ -24,7 +24,7 @@
:key="index" :key="index"
> >
<radio <radio
:checked="formData.type === item.value" :checked="formData.way === item.value"
color="var(--ui-BG-Main)" color="var(--ui-BG-Main)"
style="transform: scale(0.8)" style="transform: scale(0.8)"
:value="item.value" :value="item.value"
@ -159,6 +159,10 @@
// //
async function submit() { async function submit() {
if (!formData.way) {
sheep.$helper.toast('请选择售后类型');
return;
}
let data = { let data = {
orderItemId: state.itemId, orderItemId: state.itemId,
refundPrice: state.item.payPrice, refundPrice: state.item.payPrice,

View File

@ -9,6 +9,7 @@ import $helper from '@/sheep/helper';
import AuthUtil from '@/sheep/api/member/auth'; import AuthUtil from '@/sheep/api/member/auth';
let configSuccess = false; let configSuccess = false;
let configAppId = ''; // JSSDK 初始化所使用的公众号 appId确认收款时需要
export default { export default {
// 判断是否在微信中 // 判断是否在微信中
@ -47,9 +48,11 @@ export default {
'updateAppMessageShareData', 'updateAppMessageShareData',
'updateTimelineShareData', 'updateTimelineShareData',
'scanQRCode', 'scanQRCode',
// 'requestMerchantTransfer', // TODO @使用者:如果需要微信商家转账功能,请打开该注释;
], // TODO 芋艿:后续可以设置更多权限; ], // TODO 芋艿:后续可以设置更多权限;
openTagList: data.openTagList, openTagList: data.openTagList,
}); });
configAppId = data.appId;
} else { } else {
console.log('请求 JSSDK 配置失败,错误码:', code); console.log('请求 JSSDK 配置失败,错误码:', code);
} }
@ -195,4 +198,50 @@ export default {
}); });
}); });
}, },
// 商家转账用户确认收款H5 / 公众号)
// 可见 https://pay.weixin.qq.com/doc/v3/merchant/4012716430 文档
requestMerchantTransfer(data, callback) {
const invoke = () => {
// WeixinJSBridge 内置对象,仅在微信客户端中有效
if (typeof WeixinJSBridge === 'undefined') {
callback.fail && callback.fail({ errMsg: '请在微信客户端中打开页面后再确认收款' });
return;
}
WeixinJSBridge.invoke(
'requestMerchantTransfer',
{
mchId: data.mchId,
appId: data.appId || configAppId,
package: data.package,
},
function (res) {
if (res.err_msg === 'requestMerchantTransfer:ok') {
callback.success && callback.success(res);
} else if (res.err_msg === 'requestMerchantTransfer:cancel') {
callback.cancel && callback.cancel(res);
} else {
callback.fail && callback.fail(res);
}
},
);
};
this.isReady(() => {
// 校验微信客户端是否支持 requestMerchantTransfer
jweixin.checkJsApi({
jsApiList: ['requestMerchantTransfer'],
success: function (res) {
if (res.checkResult && res.checkResult['requestMerchantTransfer']) {
invoke();
} else {
callback.fail && callback.fail({ errMsg: '你的微信版本过低,请更新至最新版本' });
}
},
fail: function () {
// checkJsApi 失败时,兜底直接尝试调用
invoke();
},
});
});
},
}; };

View File

@ -2,6 +2,7 @@ import $wxsdk from '@/sheep/libs/sdk-h5-weixin';
import { getRootUrl } from '@/sheep/helper'; import { getRootUrl } from '@/sheep/helper';
import AuthUtil from '@/sheep/api/member/auth'; import AuthUtil from '@/sheep/api/member/auth';
import SocialApi from '@/sheep/api/member/social'; import SocialApi from '@/sheep/api/member/social';
import sheep from '@/sheep';
const socialType = 31; // 社交类型 - 微信公众号 const socialType = 31; // 社交类型 - 微信公众号
@ -94,6 +95,30 @@ async function getInfo() {
return data; return data;
} }
// 商家转账用户确认模式下,拉起页面请求用户确认收款 Transfer
// 入参与小程序保持一致:(mchId, packageInfo, successCallback, failCallback)
function requestMerchantTransfer(mchId, packageInfo, successCallback, failCallback) {
$wxsdk.requestMerchantTransfer(
{
mchId,
package: packageInfo,
},
{
success: (res) => {
successCallback && successCallback({ result: 'success', ...res });
},
cancel: (res) => {
sheep.$helper.toast('确认收款已取消');
failCallback && failCallback({ result: 'cancel', errMsg: '确认收款已取消', ...res });
},
fail: (res) => {
sheep.$helper.toast(res.errMsg || '确认收款失败');
failCallback && failCallback({ result: 'fail', ...res });
},
},
);
}
export default { export default {
load, load,
login, login,
@ -101,5 +126,6 @@ export default {
unbind, unbind,
getInfo, getInfo,
getOpenid, getOpenid,
requestMerchantTransfer,
jsWxSdk: $wxsdk, jsWxSdk: $wxsdk,
}; };