xy 1 yıl önce
ebeveyn
işleme
ed22fea6d3

BIN
.DS_Store


BIN
xs-app/.DS_Store


+ 51 - 27
xs-app/App.vue

@@ -1,12 +1,35 @@
 <script>
-    import { tools } from './framework/tools';
+    import { config } from './config/config';
+import { sdkUtil } from './framework/sdkUtil';
+import { tools } from './framework/tools';
 
 	import { UserStatus } from './stores/userStatusManager';
 	const novelPlugin = requirePlugin('novel-plugin');
 	export default {
 		onLaunch: function() {
 			console.log('App Launch')
-			tools.requestLogin(()=>{})
+			switch (tools.platform){
+				case config.Platform.WEIXIN:
+					wx.showShareMenu({
+								withShareTicket: true,
+								menus: ['shareAppMessage', 'shareTimeline']
+							});
+				break;
+			}
+			tools.requestLogin(()=>{
+				// tools.requestRechargeOrderBuy(config.pay_type.WEI_XIN,1,(order_id,data)=>{
+				// 	console.log("order_id",order_id)
+				// 	console.log("data",data)
+				// 	sdkUtil.showPayment({
+				// 		timeStamp:data.time_stamp,
+				// 		nonceStr:data.nonce_str,
+				// 		package:`prepay_id=${data.prepay_id}`,
+				// 		paySign:data.pay_sign,
+				// 		signType:data.sign_type},()=>{
+							
+				// 	})
+				// })
+			})
 		   // 订阅小程序初始化成功的事件
 		   
 		      novelPlugin.setLoggerConfig({
@@ -17,7 +40,6 @@
 		         error:true})
 			novelPlugin.onPageLoad(onNovelPluginLoad);
 			console.log("novelPlugin",novelPlugin)
-			tools.requestLogin()
 		},
 		onShow: function() {
 			console.log('App Show')
@@ -51,14 +73,14 @@
 	  // 因为是否添加书架的情况阅读器并不记录 所以需要接入方在接入的时候设置书架的状态
 	  // 默认情况该值为0 即未添加
 	  // 注:此处直接设置了未添加的状态 但实际情况应是接入方去拉取存储于接入方的用户数据
-	  var book_id = tools.getBookIdByWxBookId(novelManager.getBookId())
-	  tools.checkBookOnBookshelf(book_id,(is_on)=>{
-		  novelManager.setBookshelfStatus({
-		    bookshelfStatus: is_on==true?1:0,
-		  });
-	  })
-	
-
+		tools.getBookIdByWxBookId(novelManager.getBookId(),(book_id)=>{
+			tools.checkBookOnBookshelf(book_id,(is_on)=>{
+				  novelManager.setBookshelfStatus({
+					bookshelfStatus: is_on==true?1:0,
+				  });
+			})
+		})
+	  // var wx_book_id = novelManager.getBookId()
 	  // 监听用户点击书架的事件
 	  // params.bookshelfStatus number类型 0 代表用户取消添加书架 1 代表用户添加书架
 	  novelManager.onClickBookshelf((params) => {
@@ -68,21 +90,23 @@
 		// novelManager.setBookshelfStatus({
 		//   bookshelfStatus: params.bookshelfStatus === 0 ? 1 : 0,
 		// });
-			var book_id = tools.getBookIdByWxBookId(novelManager.getBookId())
-			console.log("book_id:",book_id)
-			if(params.bookshelfStatus === 0 ){
-				tools.addBookshelf(UserStatus().getUserSelectBook(),(is_on)=>{
-					novelManager.setBookshelfStatus({
-							bookshelfStatus: 1,
-					});
-				})
-			}else{
-				tools.deleteBookshelf([book_id],()=>{
-					novelManager.setBookshelfStatus({
-							bookshelfStatus: 0,
-					});
-				})
-			}
+			tools.getBookIdByWxBookId(novelManager.getBookId(),(book_id)=>{
+				console.log("book_id:",book_id)
+				if(params.bookshelfStatus === 0 ){
+					tools.addBookshelf(UserStatus().getUserSelectBook(),(is_on)=>{
+						novelManager.setBookshelfStatus({
+								bookshelfStatus: 1,
+						});
+					})
+				}else{
+					tools.deleteBookshelf([book_id],()=>{
+						novelManager.setBookshelfStatus({
+								bookshelfStatus: 0,
+						});
+					})
+				}
+			})
+		
 	
 	  });
 
@@ -113,7 +137,7 @@
 	 //  });
 	}
 </script>
-
+	
 <style>
 	/*每个页面公共css */
 </style>

+ 32 - 0
xs-app/components/read/wx-charge-dialog.vue

@@ -0,0 +1,32 @@
+<template>
+	<view>
+		<button @click="pay">付费</button>
+	</view>
+</template>
+
+<script setup lang="ts">
+	const novelPlugin = requirePlugin('novel-plugin');
+	const props = defineProps({
+		novelManagerId: {
+	      type: Number,
+	      value: -1
+	    },
+	    bookId: {
+	      type: String,
+	      value: ''
+	    },
+	    chapterIndex: {
+	      type: Number,
+	      value: -1
+	    }
+	})
+	
+	function pay(){
+		const novelManager = novelPlugin.getNovelManager(props.novelManagerId)
+		console.log("id",novelManager.getId())
+		console.log("BookId",novelManager.getBookId())
+	}
+</script>
+
+<style>
+</style>

+ 1 - 0
xs-app/config/config.ts

@@ -110,6 +110,7 @@ export class config {
 			user_info:'/user/info', //用户详情
 			reset:'/user/reset', //重置用户
 			book_search:'/book/search', //书搜索
+			get_wxbook_to_bookid:'/book/get_wxbook_to_bookid', //获取书id
 		},
 		
 		

+ 8 - 0
xs-app/data/data.ts

@@ -118,4 +118,12 @@ export class order_info_data {
 
 export class search_item_data {
 	name:string;
+}
+
+export interface wx_pay_data{
+	timeStamp:string,
+	nonceStr:string,
+	package:string,
+	paySign:string,
+	signType:string,
 }

+ 41 - 1
xs-app/framework/sdkUtil.ts

@@ -1,7 +1,15 @@
 import { config } from "../config/config"
+import { wx_pay_data } from "../data/data";
 import { log } from "./log"
 import { tools } from "./tools"
-
+// export default {
+//   onShareAppMessage() {
+//     return {
+//       title: '分享给微信好友',
+//       path: '/pages/bookstore/bookstore'
+//     };
+//   }
+// }
 export class sdkUtil {
 		
 	public static login(cb:Function) {
@@ -35,6 +43,38 @@ export class sdkUtil {
 				break;
 		}
 	}
+	
+	public static showPayment(data:wx_pay_data,cb:Function){
+		switch (tools.platform){
+			case config.Platform.WEIXIN:
+			    wx.requestPayment({
+					timeStamp: data.timeStamp,
+					nonceStr: data.nonceStr,
+					package: data.package,
+					paySign: data.paySign,
+					signType:"RSA",
+					success: (res) => {
+						console.log("showPayment - success",res)
+						  cb && cb(null,res)
+					},
+					fail: (res) => {
+						console.log("showPayment - fail",res)
+						  cb && cb("fail!",res)
+					},
+					complete: (res) => {
+						console.log("showPayment - complete",res,data)
+						  // cb && cb(res)
+					}
+				});
+				break;
+			case config.Platform.TOUTIAO:
+
+			    break;
+			default:
+			    cb && cb()
+				break;
+		}
+	}
 
     /**
 	 * 添加桌面

+ 56 - 50
xs-app/framework/tools.ts

@@ -97,13 +97,9 @@ export class tools {
 		
 	// 进入书详情
 	public static value_gotoBookdetails_data = null
-	public static gotoBookdetails(book_id:number, cb:Function=null) {
+	public static gotoBookdetails(book_id:number,wx_book_id:string, cb:Function=null) {
 		if(book_id) {
 			if(tools.getCurPlatform()==config.Platform.WEIXIN){
-				var wx_bookId = tools.getWxBookId(book_id)
-				if(wx_bookId==null){
-					return util.showModal("错误","错误")
-					}
 				tools.value_gotoBookdetails_data = {'book_id':book_id}
 				util.showLoading()
 				let url = config.url_confg.Static.book_details(book_id)
@@ -113,10 +109,10 @@ export class tools {
 						if(data.code==config.url_confg.StatesCode.SUCCESS){
 							var book_data = new book_item_data()
 							book_data = data.content
-							book_data.wx_book_id = wx_bookId
+							console.log("book_data",book_data)
 							UserStatus().updateUserSelectBook(book_data)
 							wx.redirectTo({
-							  url: `plugin-private://wx293c4b6097a8a4d0/pages/novel/index?bookId=${wx_bookId}`
+							  url: `plugin-private://wx293c4b6097a8a4d0/pages/novel/index?bookId=${book_data.wx_book_id}`
 							});
 						}
 					}
@@ -468,7 +464,7 @@ export class tools {
 	}
 	
 	public static getCurBuyType(){
-		let type = config.pay_type.NEI_BU;
+		let type = config.pay_type.WEI_XIN;
 		// switch (tools.getCurPlatform()){
 		// 	case config.Platform.WEIXIN:
 		// 		type = config.pay_type.WEI_XIN
@@ -492,47 +488,57 @@ export class tools {
 		return config.read_config.colorBgResList[index].off_res
 	}
 	
-	public static getWxBookId(book_id:number){
-		var temp = [
-		{"book_id": 1, "wx_book_id": "A1HcfuuvhA6S7Nqy3f97nTixyb"},
-		{"book_id": 2, "wx_book_id": "A1Hcfuwb1iw9PakEYJz8wGWN4V"},
-		{"book_id": 3, "wx_book_id": "A1HcfuuvKqNdTuMD9y9bTAinvh"},
-		{"book_id": 4, "wx_book_id": "A1HcfuyDVgAqSRAiaWsYRcGttu"},
-		{"book_id": 5, "wx_book_id": "A1Hcfuzo33e6KTd9VCpmFc23L9"},
-		{"book_id": 6, "wx_book_id": "A1Hcfuzp91oWFt7RAGoLFV2ZUq"},  
-		{"book_id": 7, "wx_book_id": "A1HcfuzqEyxvCJbgqLmuFN35dX"},
-		{"book_id": 8, "wx_book_id": "A1Hcfv2QnMSB5M47k2j85MnE4m"},
-		{"book_id": 9, "wx_book_id": "A1Hcfv2RtKbb1mYPR6hh5EnkDT"},
-		{"book_id": 10, "wx_book_id": "A1Hcfv2SzHkzxC2f6AgG57oGN9"}
-		];
-		for (var i = 0; i < temp.length; i++) {
-			if(temp[i].book_id==book_id){
-				return temp[i].wx_book_id
-			}
-		}
-		return null
-	}
-	
-	public static getBookIdByWxBookId(wx_book_id:string){
-		var temp = [
-		{"book_id": 1, "wx_book_id": "A1HcfuuvhA6S7Nqy3f97nTixyb"},
-		{"book_id": 2, "wx_book_id": "A1Hcfuwb1iw9PakEYJz8wGWN4V"},
-		{"book_id": 3, "wx_book_id": "A1HcfuuvKqNdTuMD9y9bTAinvh"},
-		{"book_id": 4, "wx_book_id": "A1HcfuyDVgAqSRAiaWsYRcGttu"},
-		{"book_id": 5, "wx_book_id": "A1Hcfuzo33e6KTd9VCpmFc23L9"},
-		{"book_id": 6, "wx_book_id": "A1Hcfuzp91oWFt7RAGoLFV2ZUq"},  
-		{"book_id": 7, "wx_book_id": "A1HcfuzqEyxvCJbgqLmuFN35dX"},
-		{"book_id": 8, "wx_book_id": "A1Hcfv2QnMSB5M47k2j85MnE4m"},
-		{"book_id": 9, "wx_book_id": "A1Hcfv2RtKbb1mYPR6hh5EnkDT"},
-		{"book_id": 10, "wx_book_id": "A1Hcfv2SzHkzxC2f6AgG57oGN9"}
-		];
+	// public static getWxBookId(book_id:number){
+	// 	var temp = [
+	// 	{"book_id": 1, "wx_book_id": "A1HcfuuvhA6S7Nqy3f97nTixyb"},
+	// 	{"book_id": 2, "wx_book_id": "A1Hcfuwb1iw9PakEYJz8wGWN4V"},
+	// 	{"book_id": 3, "wx_book_id": "A1HcfuuvKqNdTuMD9y9bTAinvh"},
+	// 	{"book_id": 4, "wx_book_id": "A1HcfuyDVgAqSRAiaWsYRcGttu"},
+	// 	{"book_id": 5, "wx_book_id": "A1Hcfuzo33e6KTd9VCpmFc23L9"},
+	// 	{"book_id": 6, "wx_book_id": "A1Hcfuzp91oWFt7RAGoLFV2ZUq"},  
+	// 	{"book_id": 7, "wx_book_id": "A1HcfuzqEyxvCJbgqLmuFN35dX"},
+	// 	{"book_id": 8, "wx_book_id": "A1Hcfv2QnMSB5M47k2j85MnE4m"},
+	// 	{"book_id": 9, "wx_book_id": "A1Hcfv2RtKbb1mYPR6hh5EnkDT"},
+	// 	{"book_id": 10, "wx_book_id": "A1Hcfv2SzHkzxC2f6AgG57oGN9"}
+	// 	];
+	// 	for (var i = 0; i < temp.length; i++) {
+	// 		if(temp[i].book_id==book_id){
+	// 			return temp[i].wx_book_id
+	// 		}
+	// 	}
+	// 	return null
+	// }
+	
+	public static getBookIdByWxBookId(wx_book_id:string,cb){
+		// var temp = [
+		// {"book_id": 1, "wx_book_id": "A1HcfuuvhA6S7Nqy3f97nTixyb"},
+		// {"book_id": 2, "wx_book_id": "A1Hcfuwb1iw9PakEYJz8wGWN4V"},
+		// {"book_id": 3, "wx_book_id": "A1HcfuuvKqNdTuMD9y9bTAinvh"},
+		// {"book_id": 4, "wx_book_id": "A1HcfuyDVgAqSRAiaWsYRcGttu"},
+		// {"book_id": 5, "wx_book_id": "A1Hcfuzo33e6KTd9VCpmFc23L9"},
+		// {"book_id": 6, "wx_book_id": "A1Hcfuzp91oWFt7RAGoLFV2ZUq"},  
+		// {"book_id": 7, "wx_book_id": "A1HcfuzqEyxvCJbgqLmuFN35dX"},
+		// {"book_id": 8, "wx_book_id": "A1Hcfv2QnMSB5M47k2j85MnE4m"},
+		// {"book_id": 9, "wx_book_id": "A1Hcfv2RtKbb1mYPR6hh5EnkDT"},
+		// {"book_id": 10, "wx_book_id": "A1Hcfv2SzHkzxC2f6AgG57oGN9"}
+		// ];
 		
-		for (var i = 0; i < temp.length; i++) {
-			if(temp[i].wx_book_id==wx_book_id){
-				return temp[i].book_id
+		// for (var i = 0; i < temp.length; i++) {
+		// 	if(temp[i].wx_book_id==wx_book_id){
+		// 		return temp[i].book_id
+		// 	}
+		// }
+		// return 1
+		
+		let url = config.url_confg.Dynamic.get_wxbook_to_bookid
+		http.DynamicRequest(url,{wx_book_id:wx_book_id},(err,data)=>{
+			if(!err) {
+				// console.log("wx_book_id",data,wx_book_id)
+				if(data.code==config.url_confg.StatesCode.SUCCESS){
+					cb && cb(data.content.id)
+				}
 			}
-		}
-		return 1
+		})
 	}
 	// 下单(支付类型 1:抖音支付 2:微信支付 3:内部充值(内部测试))
 	public static requestRechargeOrderBuy(pay_type:number, goods_id:number, cb:Function) {
@@ -542,12 +548,12 @@ export class tools {
 			if(!err&&data) {
 				if(data.code==config.url_confg.StatesCode.SUCCESS){
 					let order_id = data.content.order_id
-					cb && cb(order_id)
+					cb && cb(order_id,data.content.wxpay_info)
 				} else {
-					cb && cb('')
+					cb && cb('',null)
 				}
 			} else {
-				cb && cb('')
+				cb && cb('',null)
 			}
 		})
 	}

+ 0 - 1
xs-app/main.js

@@ -15,7 +15,6 @@ app.$mount()
 import * as Pinia from 'pinia';
 import { createSSRApp } from 'vue'
 import { tools } from './framework/tools';
-
 export function createApp() {
   const app = createSSRApp(App);
   app.use(Pinia.createPinia());

+ 22 - 13
xs-app/manifest.json

@@ -17,7 +17,9 @@
             "delay" : 0
         },
         /* 模块配置 */
-        "modules" : {},
+        "modules" : {
+            "Share" : {}
+        },
         /* 应用发布信息 */
         "distribute" : {
             /* android打包配置 */
@@ -43,7 +45,14 @@
             /* ios打包配置 */
             "ios" : {},
             /* SDK配置 */
-            "sdkConfigs" : {}
+            "sdkConfigs" : {
+                "share" : {
+                    "weixin" : {
+                        "appid" : "wx2fb9d32b2e25ec50",
+                        "UniversalLinks" : ""
+                    }
+                }
+            }
         }
     },
     /* 快应用特有相关 */
@@ -58,15 +67,15 @@
             "minified" : true
         },
         "usingComponents" : true,
-         "plugins": {
-            "novel-plugin": {
-              "version": "latest",
-              "provider": "wx293c4b6097a8a4d0",
-              "genericsImplementation": {
-                "novel": {
-                  // "charge-dialog": "./components/charge-dialog/charge-dialog"
+        "plugins" : {
+            "novel-plugin" : {
+                "version" : "latest",
+                "provider" : "wx293c4b6097a8a4d0",
+                "genericsImplementation" : {
+                    "novel" : {
+                         "charge-dialog": "/wxcomponents/charge-dialog/charge-dialog"
+                    }
                 }
-              }
             }
         },
         "optimization" : {
@@ -87,9 +96,9 @@
             "postcss" : true,
             "minified" : true
         },
-		"optimization" : {
-		    "subPackages" : true
-		}
+        "optimization" : {
+            "subPackages" : true
+        }
     },
     "uniStatistics" : {
         "enable" : false

+ 1 - 1
xs-app/pages/bookshelf/bookshelf.vue

@@ -250,7 +250,7 @@
 	
 	function gotoReadBook(book_data:book_item_data, index:number) {
 		// console.log('book_data=',book_data,'index=',index)
-		return tools.gotoBookdetails(book_data.book_id)
+		return tools.gotoBookdetails(book_data.book_id,book_data.wx_book_id)
 		// tools.gotoRead(book_data)
 		// if(tab_current.value==0) {
 		// 	// 书架

+ 16 - 1
xs-app/pages/bookstore/bookstore.vue

@@ -58,6 +58,7 @@
 								let pagingData = element.list.slice(j, j+3)
 								H3_data_list.value.push(pagingData)
 							}
+							
 						}
 					}
 				}
@@ -68,8 +69,22 @@
 	}
 
 	function clickBook(data:book_item_data) {
-		tools.gotoBookdetails(data.book_id)
+		tools.gotoBookdetails(data.book_id,data.wx_book_id)
 	}
+	
+	function  shareToTimeline() {
+	    wx.shareToTimeline({
+	      title: '分享到朋友圈',
+	      link: '你的小程序链接',
+	      imgUrl: '你的图片链接',
+	      success: function () {
+	        console.log('分享到朋友圈成功');
+	      },
+	      fail: function (err) {
+	        console.log('分享到朋友圈失败', err);
+	      }
+	    });
+	  }
 </script>
 
 <style lang="scss">

+ 1 - 1
xs-app/pagesA/bookdetails/bookdetails-recommend.vue

@@ -33,7 +33,7 @@
 	}
 	
 	function clickBook(data:book_item_data) {
-		tools.gotoBookdetails(data.book_id)
+		tools.gotoBookdetails(data.book_id,data.wx_book_id)
 	}
 	
 </script>

+ 26 - 10
xs-app/pagesA/recharge/rechargeCoin.vue

@@ -62,6 +62,7 @@
     import { UserData } from '../../stores/userDataManager';
     import { util } from '../../framework/util';
     import { tools } from '../../framework/tools';
+	import { sdkUtil } from '../../framework/sdkUtil';
 		
 	let data_list = ref([])
 	let current_index = ref(-1)
@@ -96,18 +97,33 @@
 		}
 		let data = data_list.value[current_index.value]
 		util.showLoading('',true)
-		tools.requestRechargeOrderBuy(3,data.goods_id,(order_id:string)=>{
+		tools.requestRechargeOrderBuy(tools.getCurBuyType(),data.goods_id,(order_id:string,data:any)=>{
 			if(order_id.length>0) {
-				setTimeout(function() {
-					tools.requestRechargeOrderInfo(order_id,(status:number)=>{
-						util.hideLoading()
-						if(status==2) {
-							UserData().update_user_info(()=>{
-								util.showSuccessToast('充值成功')
-							})
+				
+				sdkUtil.showPayment({
+					timeStamp:data.time_stamp,
+					nonceStr:data.nonce_str,
+					package:`prepay_id=${data.prepay_id}`,
+					paySign:data.pay_sign,
+					signType:data.sign_type},(err:any,pay_res:any)=>{
+						if(err==null){
+							setTimeout(function() {
+								tools.requestRechargeOrderInfo(order_id,(status:number)=>{
+									util.hideLoading()
+									if(status==2) {
+										UserData().update_user_info(()=>{
+											util.showSuccessToast('充值成功')
+										})
+									}
+								})
+							}, 2000);
+						}else{
+							util.hideLoading()
+							util.showErrorToast('充值失败')
 						}
-					})
-				}, 2000);
+					},
+				)
+				
 			} else {
 				util.hideLoading()
 			}

+ 35 - 10
xs-app/pagesA/recharge/rechargeVIP.vue

@@ -57,6 +57,7 @@
     import { UserData } from '../../stores/userDataManager';
     import { util } from '../../framework/util';
     import { tools } from '../../framework/tools';
+import { sdkUtil } from '../../framework/sdkUtil';
 		
 	let user_data = UserData().getData()
 	let data_list = ref([])
@@ -98,18 +99,42 @@
 		}
 		let data = data_list.value[current_index.value]
 		util.showLoading('',true)
-		tools.requestRechargeOrderBuy(3,data.goods_id,(order_id:string)=>{
+		tools.requestRechargeOrderBuy(tools.getCurBuyType(),data.goods_id,(order_id:string,data:any)=>{
 			if(order_id.length>0) {
-				setTimeout(function() {
-					tools.requestRechargeOrderInfo(order_id,(status:number)=>{
-						util.hideLoading()
-						if(status==2) {
-							UserData().update_user_info(()=>{
-								util.showSuccessToast('VIP成功')
-							})
+				
+				sdkUtil.showPayment({
+					timeStamp:data.time_stamp,
+					nonceStr:data.nonce_str,
+					package:`prepay_id=${data.prepay_id}`,
+					paySign:data.pay_sign,
+					signType:data.sign_type},(err:any,pay_res:any)=>{
+						if(err==null){
+							setTimeout(function() {
+								tools.requestRechargeOrderInfo(order_id,(status:number)=>{
+									util.hideLoading()
+									if(status==2) {
+										UserData().update_user_info(()=>{
+											util.showSuccessToast('VIP成功')
+										})
+									}
+								})
+							}, 2000);
+						}else{
+							util.hideLoading()
+							util.showErrorToast('充值失败')
 						}
-					})
-				}, 2000);
+					},
+				)
+				// setTimeout(function() {
+				// 	tools.requestRechargeOrderInfo(order_id,(status:number)=>{
+				// 		util.hideLoading()
+				// 		if(status==2) {
+				// 			UserData().update_user_info(()=>{
+				// 				util.showSuccessToast('VIP成功')
+				// 			})
+				// 		}
+				// 	})
+				// }, 2000);
 			} else {
 				util.hideLoading()
 			}

+ 1 - 1
xs-app/pagesA/search/search-list.vue

@@ -36,7 +36,7 @@
 	}
 	
 	function clickItem(book_data:book_item_data) {
-		tools.gotoBookdetails(book_data.book_id)
+		tools.gotoBookdetails(book_data.book_id,book_data.wx_book_id)
 	}
 	
 </script>

+ 42 - 0
xs-app/wxcomponents/charge-dialog/charge-dialog.js

@@ -0,0 +1,42 @@
+const novelPlugin = requirePlugin('novel-plugin');
+
+Component({
+  properties: {
+    novelManagerId: {
+      type: Number,
+      value: -1
+    },
+    bookId: {
+      type: String,
+      value: ''
+    },
+    chapterIndex: {
+      type: Number,
+      value: -1
+    },
+  },
+
+  data: {
+    loading: false,
+  },
+
+  methods: {
+    // 这里实现自己的付费逻辑
+    async pay() {
+      // novelManagerId 句柄 用来获取novelManager实例
+      const novelManager = novelPlugin.getNovelManager(this.properties.novelManagerId);
+
+      // getId() 返回当前manager对应的Id(即句柄)
+      console.log('id:', novelManager.getId());
+
+      // getBookId() 返回当前manager对应的bookId
+      console.log('bookId:', novelManager.getBookId());
+
+      wx.showModal({
+        title: '付费逻辑',
+        content: '请到components/charge-dialog/charge-dialog.js中完善付费逻辑',
+        showCancel: false,
+      });
+    },
+  },
+})

+ 3 - 0
xs-app/wxcomponents/charge-dialog/charge-dialog.json

@@ -0,0 +1,3 @@
+{
+  "component": true
+}

+ 5 - 0
xs-app/wxcomponents/charge-dialog/charge-dialog.wxml

@@ -0,0 +1,5 @@
+<view class="charge_dialog" style="height: 300px;">
+  <button disabled="{{ loading }}" type="primary" bindtap="pay">
+    假装给第{{ chapterIndex + 1 }}章充钱
+  </button>
+</view>

+ 7 - 0
xs-app/wxcomponents/charge-dialog/charge-dialog.wxss

@@ -0,0 +1,7 @@
+.charge_dialog {
+  height: 300px;
+  display: flex;
+  flex-direction: row;
+  justify-content: center;
+  align-items: center;
+}