Просмотр исходного кода

!61 【新增】接入微信订阅消息
Merge pull request !61 from puhui999/master

芋道源码 1 год назад
Родитель
Сommit
3d7f63868f

+ 2 - 1
pages/order/aftersale/apply.vue

@@ -130,6 +130,7 @@
   import TradeConfigApi from '@/sheep/api/trade/config';
   import { fen2yuan } from '@/sheep/hooks/useGoods';
   import AfterSaleApi from '@/sheep/api/trade/afterSale';
+  import { SubscribeTemplate } from '@/sheep/util/const';
 
   const form = ref(null);
   const state = reactive({
@@ -165,7 +166,7 @@
   // 提交表单
   async function submit() {
     // #ifdef MP
-    sheep.$platform.useProvider('wechat').subscribeMessage('order_aftersale_change');
+    sheep.$platform.useProvider('wechat').subscribeMessage(SubscribeTemplate.ORDER_AFTERSALE_CHANGE);
     // #endif
     let data = {
       orderItemId: state.itemId,

+ 14 - 13
pages/pay/recharge.vue

@@ -47,6 +47,7 @@
 	import { onLoad } from '@dcloudio/uni-app';
   import { fen2yuan } from '@/sheep/hooks/useGoods';
   import PayWalletApi from '@/sheep/api/pay/wallet';
+  import { SubscribeTemplate } from '@/sheep/util/const';
 
 	const userWallet = computed(() => sheep.$store('user').userWallet);
 	const statusBarHeight = sheep.$platform.device.statusBarHeight * 2;
@@ -73,20 +74,20 @@
 
   // 发起支付
 	async function onConfirm() {
-		const { code, data } = await PayWalletApi.createWalletRecharge({
-			packageId: state.packageList.find((item) => fen2yuan(item.payPrice) === state.recharge_money)?.id,
-			payPrice: state.recharge_money * 100
-		});
-		if (code !== 0) {
-			return;
-		}
+		// const { code, data } = await PayWalletApi.createWalletRecharge({
+		// 	packageId: state.packageList.find((item) => fen2yuan(item.payPrice) === state.recharge_money)?.id,
+		// 	payPrice: state.recharge_money * 100
+		// });
+		// if (code !== 0) {
+		// 	return;
+		// }
     // #ifdef MP
-    sheep.$platform.useProvider('wechat').subscribeMessage('money_change');
+    sheep.$platform.useProvider('wechat').subscribeMessage(SubscribeTemplate.MONEY_CHANGE);
     // #endif
-    sheep.$router.go('/pages/pay/index', {
-      id: data.payOrderId,
-      orderType: 'recharge'
-    });
+    // sheep.$router.go('/pages/pay/index', {
+    //   id: data.payOrderId,
+    //   orderType: 'recharge'
+    // });
 	}
 
 	onLoad(() => {
@@ -256,4 +257,4 @@
 			}
 		}
 	}
-</style>
+</style>

+ 2 - 5
sheep/api/migration/third.js

@@ -4,13 +4,10 @@ export default {
   // 微信相关
   wechat: {
     // 小程序订阅消息
-    subscribeTemplate: (params) =>
+    subscribeTemplate: () =>
       request({
-        url: 'third/wechat/subscribeTemplate',
+        url: '/member/social-user/get-subscribe-template',
         method: 'GET',
-        params: {
-          platform: 'miniProgram',
-        },
         custom: {
           showError: false,
           showLoading: false,

+ 17 - 11
sheep/platform/provider/wechat/miniProgram.js

@@ -1,4 +1,4 @@
-import third from '@/sheep/api/migration/third'
+import third from '@/sheep/api/migration/third';
 import AuthUtil from '@/sheep/api/member/auth';
 import SocialApi from '@/sheep/api/member/social';
 import UserApi from '@/sheep/api/member/user';
@@ -128,14 +128,14 @@ async function getInfo() {
 const checkUpdate = async (silence = true) => {
   if (uni.canIUse('getUpdateManager')) {
     const updateManager = uni.getUpdateManager();
-    updateManager.onCheckForUpdate(function (res) {
+    updateManager.onCheckForUpdate(function(res) {
       // 请求完新版本信息的回调
       if (res.hasUpdate) {
-        updateManager.onUpdateReady(function () {
+        updateManager.onUpdateReady(function() {
           uni.showModal({
             title: '更新提示',
             content: '新版本已经准备好,是否重启应用?',
-            success: function (res) {
+            success: function(res) {
               if (res.confirm) {
                 // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                 updateManager.applyUpdate();
@@ -143,7 +143,7 @@ const checkUpdate = async (silence = true) => {
             },
           });
         });
-        updateManager.onUpdateFailed(function () {
+        updateManager.onUpdateFailed(function() {
           // 新的版本下载失败
           // uni.showModal({
           //   title: '已经有新版本了哟~',
@@ -164,8 +164,8 @@ const checkUpdate = async (silence = true) => {
 
 // 获取订阅消息模板
 async function getSubscribeTemplate() {
-  const { error, data } = await third.wechat.subscribeTemplate();
-  if (error === 0) {
+  const { code, data } = await third.wechat.subscribeTemplate();
+  if (code === 0) {
     subscribeEventList = data;
   }
 }
@@ -174,11 +174,17 @@ async function getSubscribeTemplate() {
 function subscribeMessage(event) {
   let tmplIds = [];
   if (typeof event === 'string') {
-    tmplIds.push(subscribeEventList[event]);
+    const temp = subscribeEventList.find(item => item.title.includes(event));
+    if (temp) {
+      tmplIds.push(temp.priTmplId);
+    }
   }
   if (typeof event === 'object') {
-    event.forEach((item) => {
-      if (typeof subscribeEventList[item] !== 'undefined') tmplIds.push(subscribeEventList[item]);
+    event.forEach((e) => {
+      const temp = subscribeEventList.find(item => item.title.includes(e));
+      if (temp) {
+        tmplIds.push(temp.priTmplId);
+      }
     });
   }
   if (tmplIds.length === 0) return;
@@ -201,5 +207,5 @@ export default {
   getInfo,
   getOpenid,
   subscribeMessage,
-  checkUpdate
+  checkUpdate,
 };

+ 7 - 0
sheep/util/const.js

@@ -56,6 +56,13 @@ export const TimeStatusEnum = {
     END: '已结束',
 }
 
+// TODO 订阅模版枚举
+export const SubscribeTemplate = {
+  ORDER_AFTERSALE_CHANGE: "售后进度通知",
+  MONEY_CHANGE: "充值成功通知"
+}
+
+
 export const getTimeStatusEnum = (startTime, endTime) => {
     const now = dayjs();
     if (now.isBefore(startTime)) {