diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..99057ba
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+unpackage/
\ No newline at end of file
diff --git a/1.txt b/1.txt
deleted file mode 100644
index 9d60796..0000000
--- a/1.txt
+++ /dev/null
@@ -1 +0,0 @@
-11
\ No newline at end of file
diff --git a/App.vue b/App.vue
new file mode 100644
index 0000000..ec6994d
--- /dev/null
+++ b/App.vue
@@ -0,0 +1,20 @@
+
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..b5d330d
--- /dev/null
+++ b/index.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/baseUrl.js b/lib/baseUrl.js
new file mode 100644
index 0000000..6f53dcf
--- /dev/null
+++ b/lib/baseUrl.js
@@ -0,0 +1,3 @@
+// const BASE_URL = 'https://u.batiao8.com' //测试
+const BASE_URL = 'https://pay.batiao8.com' //正式
+export default BASE_URL
\ No newline at end of file
diff --git a/lib/request.js b/lib/request.js
new file mode 100644
index 0000000..31e0027
--- /dev/null
+++ b/lib/request.js
@@ -0,0 +1,47 @@
+import BASE_URL from './baseUrl.js'
+
+const request = async ({
+ url,
+ method,
+ data
+}) => {
+ try {
+ const app = getApp();
+ const globalData = app.globalData || {}
+ let header = {};
+ if (globalData.token) {
+ header['x-token'] = globalData.token;
+ }
+ let res = await uni.request({
+ url: BASE_URL + url,
+ method: method,
+ data: data,
+ // header: header
+ })
+ console.log('--res', res)
+ if (res.data) {
+ if(res.data.code && res.data.code !== 200) {
+ uni.showToast({
+ title: res.data.message.split(',')[0],
+ icon: 'none',
+ })
+ }
+ return res.data
+ } else {
+ uni.showToast({
+ title: res.data.message,
+ icon: 'none',
+ })
+ return {}
+ }
+ } catch (err) {
+ console.log('--err', err)
+ uni.showToast({
+ title: err.errMsg,
+ icon: 'none',
+ })
+ return {}
+ }
+}
+
+export default request
\ No newline at end of file
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..c1caf36
--- /dev/null
+++ b/main.js
@@ -0,0 +1,22 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..d8a5b9c
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,73 @@
+{
+ "name" : "batiao-pay",
+ "appid" : "",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ /* 5+App特有相关 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 模块配置 */
+ "modules" : {},
+ /* 应用发布信息 */
+ "distribute" : {
+ /* android打包配置 */
+ "android" : {
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ /* ios打包配置 */
+ "ios" : {},
+ /* SDK配置 */
+ "sdkConfigs" : {}
+ }
+ },
+ /* 快应用特有相关 */
+ "quickapp" : {},
+ /* 小程序特有相关 */
+ "mp-weixin" : {
+ "appid" : "wxb0e5bc0e275ba55c",
+ "setting" : {
+ "urlCheck" : false
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true,
+ "appid" : "2021005194639068"
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "3"
+}
diff --git a/pages.json b/pages.json
new file mode 100644
index 0000000..c119ea5
--- /dev/null
+++ b/pages.json
@@ -0,0 +1,17 @@
+{
+ "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": ""
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "uniIdRouter": {}
+}
diff --git a/pages/index/index.vue b/pages/index/index.vue
new file mode 100644
index 0000000..e586826
--- /dev/null
+++ b/pages/index/index.vue
@@ -0,0 +1,412 @@
+
+
+
+
+
+
+ {{ envErrText }}
+
+
+
+
+
+
+
+ 支付已完成
+
+
+
+
+
+ {{ orderInfo.goodsName }}
+
+ ¥ {{ numberFormat(orderInfo.totalFee) }}
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ payResultItem.resultText }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/static/app.css b/static/app.css
new file mode 100644
index 0000000..4778a93
--- /dev/null
+++ b/static/app.css
@@ -0,0 +1,167 @@
+body, page {
+ font-family: -apple-system, BlinkMacSystemFont, sans-serif;
+ text-align: center;
+ background-color: #f2f2f2;
+ margin: 0;
+ padding: 0;
+ height: 100vh;
+ overflow: hidden;
+}
+
+.wrapper {
+ width: 100%;
+ height: 100%;
+ box-sizing: border-box;
+ display: flex;
+ flex-flow: column;
+ align-items: center;
+}
+
+.item-name {
+ /* width: 160rpx; */
+ height: 56rpx;
+ margin-top: 140rpx;
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 500;
+ font-size: 40rpx;
+ color: #1A1A1A;
+ line-height: 56rpx;
+ text-align: center;
+ font-style: normal;
+ text-transform: none;
+}
+
+.item-count {
+ /* width: 250rpx; */
+ height: 92rpx;
+ font-family: D-DIN-PRO, D-DIN-PRO;
+ font-weight: 500;
+ font-size: 80rpx;
+ color: #FF2C2C;
+ line-height: 72rpx;
+ text-align: center;
+ font-style: normal;
+ text-transform: none;
+ margin: 12rpx 0 16rpx 0;
+}
+
+.company {
+ /* width: 280rpx; */
+ height: 40rpx;
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #53896D;
+ line-height: 40rpx;
+ text-align: center;
+ font-style: normal;
+ text-transform: none;
+}
+
+.pay-methods {
+ margin-top: 80rpx;
+ margin-bottom: 120rpx;
+}
+
+.pay-method-item {
+ width: 640rpx;
+ height: 120rpx;
+ background: #FFFFFF;
+ box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(36, 36, 36, 0.05);
+ border-radius: 16rpx;
+ padding: 0 28rpx;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 20rpx;
+}
+
+.pay-method-item:last-child {
+ margin-bottom: 0;
+}
+
+.pay-method-item-left {
+ display: flex;
+ align-items: center;
+}
+
+.pay-method-name {
+ margin-left: 16rpx;
+}
+
+#pay-btn {
+ width: 686rpx;
+ height: 104rpx;
+ border-radius: 1842rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #FFFFFF;
+ line-height: 48rpx;
+ text-align: center;
+ font-style: normal;
+ text-transform: none;
+}
+
+.weixin-btn {
+ background: #06BF5E;
+}
+
+.alipay-btn {
+ background: #2c78fe;
+}
+
+.pay-result-container {
+ margin-top: 140rpx;
+ display: flex;
+ flex-flow: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.pay-result-text {
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 400;
+ font-size: 36rpx;
+ color: #1A1A1A;
+ line-height: 52rpx;
+ text-align: center;
+ font-style: normal;
+ text-transform: none;
+ margin: 52rpx 0 140rpx 0;
+}
+
+.back-btn {
+ width: 312rpx;
+ height: 104rpx;
+ background: #E7E7E7;
+ border-radius: 1842rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 400;
+ font-size: 32rpx;
+ color: #666666;
+ line-height: 48rpx;
+ text-align: center;
+ font-style: normal;
+ text-transform: none;
+}
+
+.env-err-text {
+ margin-top: 82rpx;
+ width: 504rpx;
+ height: 112rpx;
+ font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
+ font-weight: 500;
+ font-size: 36rpx;
+ color: #F64F50;
+ line-height: 56rpx;
+ text-align: center;
+ font-style: normal;
+ text-transform: none;
+}
\ No newline at end of file
diff --git a/static/image/ali-check.png b/static/image/ali-check.png
new file mode 100644
index 0000000..4007987
Binary files /dev/null and b/static/image/ali-check.png differ
diff --git a/static/image/ali-logo.png b/static/image/ali-logo.png
new file mode 100644
index 0000000..654ed6f
Binary files /dev/null and b/static/image/ali-logo.png differ
diff --git a/static/image/ali-payok.png b/static/image/ali-payok.png
new file mode 100644
index 0000000..021ea69
Binary files /dev/null and b/static/image/ali-payok.png differ
diff --git a/static/image/payerr.png b/static/image/payerr.png
new file mode 100644
index 0000000..cc9cc0b
Binary files /dev/null and b/static/image/payerr.png differ
diff --git a/static/image/wx-check.png b/static/image/wx-check.png
new file mode 100644
index 0000000..26e2518
Binary files /dev/null and b/static/image/wx-check.png differ
diff --git a/static/image/wx-logo.png b/static/image/wx-logo.png
new file mode 100644
index 0000000..455de1b
Binary files /dev/null and b/static/image/wx-logo.png differ
diff --git a/static/image/wx-payok.png b/static/image/wx-payok.png
new file mode 100644
index 0000000..e616e95
Binary files /dev/null and b/static/image/wx-payok.png differ
diff --git a/uni.promisify.adaptor.js b/uni.promisify.adaptor.js
new file mode 100644
index 0000000..5fec4f3
--- /dev/null
+++ b/uni.promisify.adaptor.js
@@ -0,0 +1,13 @@
+uni.addInterceptor({
+ returnValue (res) {
+ if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+ return res;
+ }
+ return new Promise((resolve, reject) => {
+ res.then((res) => {
+ if (!res) return resolve(res)
+ return res[0] ? reject(res[0]) : resolve(res[1])
+ });
+ });
+ },
+});
\ No newline at end of file
diff --git a/uni.scss b/uni.scss
new file mode 100644
index 0000000..b9249e9
--- /dev/null
+++ b/uni.scss
@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16px;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;