Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
transport-show-h5
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
transport-show-h5
Commits
998256cb
提交
998256cb
authored
7月 03, 2020
作者:
zyx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
提交 支付模块
上级
109db5f1
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
324 行增加
和
50 行删除
+324
-50
.config.dev.js
.config.dev.js
+1
-0
.config.pro.js
.config.pro.js
+3
-1
.config.test.js
.config.test.js
+3
-1
.eslintrc
.eslintrc
+2
-1
package-lock.json
package-lock.json
+7
-44
index.js
src/modules/index.js
+5
-2
PayAction.js
src/modules/pay-module/action/PayAction.js
+7
-0
index.js
src/modules/pay-module/action/index.js
+5
-0
index.js
src/modules/pay-module/api/index.js
+7
-0
pay_api.js
src/modules/pay-module/api/pay_api.js
+4
-0
en.json
src/modules/pay-module/assets/languages/en.json
+20
-0
index.js
src/modules/pay-module/assets/languages/index.js
+40
-0
language.js
src/modules/pay-module/assets/languages/language.js
+7
-0
zh-CN.json
src/modules/pay-module/assets/languages/zh-CN.json
+20
-0
index.js
src/modules/pay-module/index.js
+30
-0
index.scss
src/modules/pay-module/index.scss
+15
-0
PayH5.vue
src/modules/pay-module/src/PayH5.vue
+131
-0
index.vue
src/pages/pay/index.vue
+17
-1
没有找到文件。
.config.dev.js
浏览文件 @
998256cb
...
@@ -9,6 +9,7 @@ module.exports = {
...
@@ -9,6 +9,7 @@ module.exports = {
'md5'
:
'window.md5'
,
'md5'
:
'window.md5'
,
'regeneratorRuntime'
:
'window.regeneratorRuntime'
,
'regeneratorRuntime'
:
'window.regeneratorRuntime'
,
'wx'
:
'window.wx'
,
'wx'
:
'window.wx'
,
'WeixinJSBridge'
:
'window.WeixinJSBridge'
},
},
devServer
:
{
devServer
:
{
proxy
:
{
proxy
:
{
...
...
.config.pro.js
浏览文件 @
998256cb
...
@@ -8,7 +8,9 @@ module.exports = {
...
@@ -8,7 +8,9 @@ module.exports = {
'CKEDITOR'
:
'window.CKEDITOR'
,
'CKEDITOR'
:
'window.CKEDITOR'
,
'Base64'
:
'window.Base64'
,
'Base64'
:
'window.Base64'
,
'md5'
:
'window.md5'
,
'md5'
:
'window.md5'
,
'regeneratorRuntime'
:
'window.regeneratorRuntime'
'regeneratorRuntime'
:
'window.regeneratorRuntime'
,
'wx'
:
'window.wx'
,
'WeixinJSBridge'
:
'window.WeixinJSBridge'
}
}
},
},
ProvidePlugin
:
{
ProvidePlugin
:
{
...
...
.config.test.js
浏览文件 @
998256cb
...
@@ -8,7 +8,9 @@ module.exports = {
...
@@ -8,7 +8,9 @@ module.exports = {
'CKEDITOR'
:
'window.CKEDITOR'
,
'CKEDITOR'
:
'window.CKEDITOR'
,
'Base64'
:
'window.Base64'
,
'Base64'
:
'window.Base64'
,
'md5'
:
'window.md5'
,
'md5'
:
'window.md5'
,
'regeneratorRuntime'
:
'window.regeneratorRuntime'
'regeneratorRuntime'
:
'window.regeneratorRuntime'
,
'wx'
:
'window.wx'
,
'WeixinJSBridge'
:
'window.WeixinJSBridge'
}
}
},
},
ProvidePlugin
:
{
ProvidePlugin
:
{
...
...
.eslintrc
浏览文件 @
998256cb
...
@@ -18,6 +18,7 @@
...
@@ -18,6 +18,7 @@
"$": false,
"$": false,
"window": false,
"window": false,
"webConf": false,
"webConf": false,
"wx": false
"wx": false,
"WeixinJSBridge": false
}
}
}
}
package-lock.json
浏览文件 @
998256cb
...
@@ -1045,14 +1045,6 @@
...
@@ -1045,14 +1045,6 @@
"integrity"
:
"sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
,
"integrity"
:
"sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
,
"dev"
:
true
"dev"
:
true
},
},
"async-validator"
:
{
"version"
:
"1.8.5"
,
"resolved"
:
"https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz"
,
"integrity"
:
"sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA=="
,
"requires"
:
{
"babel-runtime"
:
"6.26.0"
}
},
"atob"
:
{
"atob"
:
{
"version"
:
"2.1.2"
,
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
,
...
@@ -1361,7 +1353,8 @@
...
@@ -1361,7 +1353,8 @@
"babel-helper-vue-jsx-merge-props"
:
{
"babel-helper-vue-jsx-merge-props"
:
{
"version"
:
"2.0.3"
,
"version"
:
"2.0.3"
,
"resolved"
:
"https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz"
,
"resolved"
:
"https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz"
,
"integrity"
:
"sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
"integrity"
:
"sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
,
"dev"
:
true
},
},
"babel-helpers"
:
{
"babel-helpers"
:
{
"version"
:
"6.24.1"
,
"version"
:
"6.24.1"
,
...
@@ -1893,6 +1886,7 @@
...
@@ -1893,6 +1886,7 @@
"version"
:
"6.26.0"
,
"version"
:
"6.26.0"
,
"resolved"
:
"https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"
,
"integrity"
:
"sha1-llxwWGaOgrVde/4E/yM3vItWR/4="
,
"integrity"
:
"sha1-llxwWGaOgrVde/4E/yM3vItWR/4="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"core-js"
:
"2.6.11"
,
"core-js"
:
"2.6.11"
,
"regenerator-runtime"
:
"0.11.1"
"regenerator-runtime"
:
"0.11.1"
...
@@ -3047,7 +3041,8 @@
...
@@ -3047,7 +3041,8 @@
"core-js"
:
{
"core-js"
:
{
"version"
:
"2.6.11"
,
"version"
:
"2.6.11"
,
"resolved"
:
"https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz"
,
"resolved"
:
"https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz"
,
"integrity"
:
"sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
"integrity"
:
"sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
,
"dev"
:
true
},
},
"core-util-is"
:
{
"core-util-is"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
...
@@ -3330,11 +3325,6 @@
...
@@ -3330,11 +3325,6 @@
"integrity"
:
"sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
,
"integrity"
:
"sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
,
"dev"
:
true
"dev"
:
true
},
},
"deepmerge"
:
{
"version"
:
"1.5.2"
,
"resolved"
:
"https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz"
,
"integrity"
:
"sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
},
"default-gateway"
:
{
"default-gateway"
:
{
"version"
:
"4.2.0"
,
"version"
:
"4.2.0"
,
"resolved"
:
"https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz"
,
...
@@ -3711,19 +3701,6 @@
...
@@ -3711,19 +3701,6 @@
"integrity"
:
"sha512-81p6DZ/XmHDD7O0ITJMa7ESo9bSCfE+v3Fny3MIYR0y77xmhoriu2ShNOLXcPS4eowF6dkxw6d2QqxTkS3DjBg=="
,
"integrity"
:
"sha512-81p6DZ/XmHDD7O0ITJMa7ESo9bSCfE+v3Fny3MIYR0y77xmhoriu2ShNOLXcPS4eowF6dkxw6d2QqxTkS3DjBg=="
,
"dev"
:
true
"dev"
:
true
},
},
"element-ui"
:
{
"version"
:
"2.13.2"
,
"resolved"
:
"https://registry.npmjs.org/element-ui/-/element-ui-2.13.2.tgz"
,
"integrity"
:
"sha512-r761DRPssMPKDiJZWFlG+4e4vr0cRG/atKr3Eqr8Xi0tQMNbtmYU1QXvFnKiFPFFGkgJ6zS6ASkG+sellcoHlQ=="
,
"requires"
:
{
"async-validator"
:
"1.8.5"
,
"babel-helper-vue-jsx-merge-props"
:
"2.0.3"
,
"deepmerge"
:
"1.5.2"
,
"normalize-wheel"
:
"1.0.1"
,
"resize-observer-polyfill"
:
"1.5.1"
,
"throttle-debounce"
:
"1.1.0"
}
},
"elliptic"
:
{
"elliptic"
:
{
"version"
:
"6.5.3"
,
"version"
:
"6.5.3"
,
"resolved"
:
"https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz"
,
"resolved"
:
"https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz"
,
...
@@ -6945,11 +6922,6 @@
...
@@ -6945,11 +6922,6 @@
"sort-keys"
:
"1.1.2"
"sort-keys"
:
"1.1.2"
}
}
},
},
"normalize-wheel"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz"
,
"integrity"
:
"sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
},
"npm-run-path"
:
{
"npm-run-path"
:
{
"version"
:
"2.0.2"
,
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz"
,
...
@@ -8061,7 +8033,8 @@
...
@@ -8061,7 +8033,8 @@
"regenerator-runtime"
:
{
"regenerator-runtime"
:
{
"version"
:
"0.11.1"
,
"version"
:
"0.11.1"
,
"resolved"
:
"https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"
,
"integrity"
:
"sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
"integrity"
:
"sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
,
"dev"
:
true
},
},
"regenerator-transform"
:
{
"regenerator-transform"
:
{
"version"
:
"0.14.4"
,
"version"
:
"0.14.4"
,
...
@@ -8275,11 +8248,6 @@
...
@@ -8275,11 +8248,6 @@
"integrity"
:
"sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
,
"integrity"
:
"sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
,
"dev"
:
true
"dev"
:
true
},
},
"resize-observer-polyfill"
:
{
"version"
:
"1.5.1"
,
"resolved"
:
"https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz"
,
"integrity"
:
"sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
"resolve"
:
{
"resolve"
:
{
"version"
:
"1.17.0"
,
"version"
:
"1.17.0"
,
"resolved"
:
"https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz"
,
...
@@ -9655,11 +9623,6 @@
...
@@ -9655,11 +9623,6 @@
"thenify"
:
"3.3.1"
"thenify"
:
"3.3.1"
}
}
},
},
"throttle-debounce"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz"
,
"integrity"
:
"sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
},
"through"
:
{
"through"
:
{
"version"
:
"2.3.8"
,
"version"
:
"2.3.8"
,
"resolved"
:
"https://registry.npmjs.org/through/-/through-2.3.8.tgz"
,
"resolved"
:
"https://registry.npmjs.org/through/-/through-2.3.8.tgz"
,
...
...
src/modules/index.js
浏览文件 @
998256cb
...
@@ -2,9 +2,11 @@
...
@@ -2,9 +2,11 @@
/* 模块基于 element-ui,一定在 element-ui后加载 */
/* 模块基于 element-ui,一定在 element-ui后加载 */
import
ExamModule
from
'./exam-module'
import
ExamModule
from
'./exam-module'
import
PayModule
from
'./pay-module'
const
components
=
[
const
components
=
[
ExamModule
ExamModule
,
PayModule
]
]
const
install
=
function
(
Vue
,
opts
=
{})
{
const
install
=
function
(
Vue
,
opts
=
{})
{
...
@@ -20,5 +22,6 @@ if (typeof window !== 'undefined' && window.Vue) {
...
@@ -20,5 +22,6 @@ if (typeof window !== 'undefined' && window.Vue) {
export
default
{
export
default
{
install
,
install
,
ExamModule
ExamModule
,
PayModule
}
}
src/modules/pay-module/action/PayAction.js
0 → 100644
浏览文件 @
998256cb
import
BaseACTION
from
'@/action/base_action'
import
{
Pay
}
from
'../api'
export
default
class
PayAction
extends
BaseACTION
{
getOrderId
(
obj
)
{
return
Pay
.
getOrderId
(
obj
).
then
(
res
=>
res
)
}
}
src/modules/pay-module/action/index.js
0 → 100644
浏览文件 @
998256cb
import
PayAction
from
'./PayAction'
const
Pay
=
new
PayAction
()
export
default
Pay
src/modules/pay-module/api/index.js
0 → 100644
浏览文件 @
998256cb
import
PayAPI
from
'./pay_api'
const
Pay
=
new
PayAPI
(
webConf
)
export
{
Pay
}
src/modules/pay-module/api/pay_api.js
0 → 100644
浏览文件 @
998256cb
import
BaseAPI
from
'@/api/base_api'
export
default
class
Pay
extends
BaseAPI
{
getOrderId
=
(
obj
)
=>
this
.
post
(
'/v2/mall/order/pre'
,
obj
,
{
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded'
}
})
}
src/modules/pay-module/assets/languages/en.json
0 → 100644
浏览文件 @
998256cb
{
"PayModule"
:
{
"DiscussList"
:
{
"answers"
:
"Answers"
,
"votes"
:
"Votes"
,
"noData"
:
"No discussion"
},
"DiscussDetail"
:
{
"title"
:
"Problem details"
,
"like"
:
"Like"
,
"discuss"
:
"Discuss"
,
"reply"
:
"Reply"
,
"delete"
:
"Delete"
,
"send"
:
"Send"
,
"noAnswer"
:
"No answer"
,
"deleteSuccess"
:
"Delete success"
,
"answering"
:
"Answer"
}
}
}
src/modules/pay-module/assets/languages/index.js
0 → 100644
浏览文件 @
998256cb
import
Cookies
from
'js-cookie'
import
VueI18n
from
'vue-i18n'
import
language
from
'./language'
// import zhCNLocale from 'element-ui/lib/locale/lang/zh-CN'
// import enLocale from 'element-ui/lib/locale/lang/en'
export
default
()
=>
{
let
_locale
=
'zh-CN'
/* 国际化初始化 */
const
_defaultLocale
=
'zh-CN'
const
_lang
=
Cookies
.
get
(
'lang'
)
||
window
.
navigator
.
language
||
window
.
navigator
.
userLanguage
||
''
if
(
_lang
)
{
if
(
language
[
_lang
])
{
_locale
=
_lang
}
else
{
let
flag
=
true
/* 做一下 兼容性处理 */
for
(
const
k
in
language
)
{
const
reg
=
new
RegExp
(
k
,
'gi'
)
if
(
reg
.
test
(
_lang
))
{
_locale
=
k
flag
=
false
break
}
}
if
(
flag
)
{
/* 当前语言版本 - 不再我们的语言库中,那么默认 en */
_locale
=
_defaultLocale
Cookies
.
set
(
'lang'
,
_defaultLocale
,
{
expires
:
30
,
domain
:
'.ezijing.com'
})
}
}
}
return
new
VueI18n
({
locale
:
_locale
,
// 定义默认语言为中文
messages
:
{
'zh-CN'
:
Object
.
assign
(
require
(
'./zh-CN.json'
)),
en
:
Object
.
assign
(
require
(
'./en.json'
))
}
})
}
src/modules/pay-module/assets/languages/language.js
0 → 100644
浏览文件 @
998256cb
/* 定义语言模型 - key 值定义 跟 languages i18n 中 保持一致 */
const
language
=
{
'zh-CN'
:
{
show
:
'语言'
,
arr
:
[{
'zh-CN'
:
'中文'
},
{
en
:
'English'
}]
},
en
:
{
show
:
'Language'
,
arr
:
[{
'zh-CN'
:
'中文'
},
{
en
:
'English'
}]
}
}
export
default
language
src/modules/pay-module/assets/languages/zh-CN.json
0 → 100644
浏览文件 @
998256cb
{
"PayModule"
:
{
"DiscussList"
:
{
"answers"
:
"回答"
,
"votes"
:
"投票"
,
"noData"
:
"暂无相关评论"
},
"DiscussDetail"
:
{
"title"
:
"问题详情"
,
"like"
:
"点赞"
,
"discuss"
:
"讨论"
,
"reply"
:
"回复"
,
"delete"
:
"删除"
,
"send"
:
"发送"
,
"noAnswer"
:
"暂无回答"
,
"deleteSuccess"
:
"删除成功"
,
"answering"
:
"回答问题"
}
}
}
src/modules/pay-module/index.js
0 → 100644
浏览文件 @
998256cb
import
'./index.scss'
import
PayH5
from
'./src/PayH5.vue'
const
components
=
[
PayH5
]
const
install
=
function
(
Vue
,
opts
=
{})
{
/* 存在国际化 */
if
(
opts
.
i18n
)
{
const
msgs
=
opts
.
i18n
.
messages
for
(
const
k
in
msgs
)
{
opts
.
i18n
.
setLocaleMessage
(
k
,
Object
.
assign
(
msgs
[
k
],
require
(
'./assets/languages/'
+
k
+
'.json'
)))
}
}
components
.
forEach
(
component
=>
{
Vue
.
component
(
component
.
name
,
component
)
})
}
/* istanbul ignore if */
if
(
typeof
window
!==
'undefined'
&&
window
.
Vue
)
{
install
(
window
.
Vue
)
}
export
default
{
install
,
PayH5
}
src/modules/pay-module/index.scss
0 → 100644
浏览文件 @
998256cb
/* Extra small devices (portrait phones, less than 576px) */
@media
(
max-width
:
575px
)
{}
/* Small devices (landscape phones, 576px and up) */
@media
(
min-width
:
576px
)
and
(
max-width
:
767px
)
{}
/* Medium devices (tablets, 768px and up) */
@media
(
min-width
:
768px
)
and
(
max-width
:
991px
)
{}
/* Large devices (desktops, 992px and up) */
@media
(
min-width
:
992px
)
and
(
max-width
:
1199px
)
{}
/* Extra large devices (large desktops, 1200px and up) */
@media
(
min-width
:
1200px
)
{}
src/modules/pay-module/src/PayH5.vue
0 → 100644
浏览文件 @
998256cb
<
template
>
<!-- 暂时无用 -->
<div
class=
"pay-box"
></div>
</
template
>
<
script
>
import
Pay
from
'../action'
export
default
{
name
:
'PayH5'
,
components
:
{},
data
()
{
const
_this
=
this
return
{
isCard
:
false
,
opaKey
:
[
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
,
'G'
],
remainingTime
:
'01:00:00'
,
currentNum
:
1
,
isAnalysis
:
false
,
swiperOptions
:
{
observer
:
true
,
on
:
{
slideChangeTransitionStart
:
function
()
{
document
.
getElementById
(
'bottom-view'
).
scrollTop
=
0
_this
.
isAnalysis
=
false
_this
.
currentNum
=
this
.
activeIndex
+
1
}
}
},
questionsData
:
{
questions
:
[]
},
requestData
:
{},
requestData2
:
{},
clockCount
:
null
,
isExamEnd
:
true
,
// examIsShow: false,
isExamSubPop
:
false
,
timePopIsShow
:
false
,
initTime
:
null
,
cache
:
null
}
},
props
:
{
requestParam
:
{
type
:
Object
,
required
:
false
,
default
()
{
return
{
product_id
:
''
,
// 提前设定
open_id
:
''
,
// 通过微信授权获取
prepay_id
:
''
,
// 通过调用接口获取
app_id
:
''
,
// 提前设定
app_secret
:
''
// 提前设定
}
}
}
},
beforeDestroy
()
{
},
mounted
()
{
/* 判别是否引入JSSDK */
// if (typeof WeixinJSBridge === 'undefined') {
// console.log('尚未引入微信JSSDK或JSSDK未执行')
// if (document.addEventListener) {
// document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady.bind(this), false)
// } else if (document.attachEvent) {
// document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady.bind(this))
// document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady.bind(this))
// }
// } else {
// this.onBridgeReady()
// }
this
.
onBridgeReady
()
},
methods
:
{
onBridgeReady
()
{
this
.
VueEvent
.
$off
(
'pay-wx-h5'
).
$on
(
'pay-wx-h5'
,
(
obj
)
=>
{
const
_callback
=
obj
.
callback
||
function
()
{}
const
_obj
=
this
.
goToPay
()
_callback
(
_obj
)
})
},
goToPay
()
{
const
obj
=
{
code
:
0
,
msg
:
''
,
data
:
{}
}
if
(
!
this
.
requestParam
.
product_id
)
{
obj
.
code
=
3001
obj
.
msg
=
'没有商品ID'
return
obj
}
if
(
!
this
.
requestParam
.
open_id
)
{
obj
.
code
=
3002
obj
.
msg
=
'没有小程序用户openid'
return
obj
}
return
Pay
.
getOrderId
(
this
.
requestParam
).
then
(
res
=>
{
obj
.
data
=
res
this
.
wxWakeUpToPay
()
// return
}).
catch
(
e
=>
{
obj
.
code
=
5001
obj
.
msg
=
e
.
message
return
obj
})
},
wxWakeUpToPay
()
{
/* 直接调用微信支付 */
const
timestamp
=
parseInt
(
new
Date
().
getTime
()
/
1000
)
const
noncestr
=
parseInt
(
Math
.
random
()
*
10000000000000000
)
WeixinJSBridge
.
invoke
(
'getBrandWCPayRequest'
,
{
appId
:
this
.
requestParam
.
app_id
,
// 公众号名称,由商户传入
timeStamp
:
timestamp
+
''
,
// 时间戳,自1970年以来的秒数
nonceStr
:
noncestr
+
''
,
// 随机串
package
:
'prepay_id='
+
this
.
requestParam
.
prepay_id
,
signType
:
'MD5'
,
// 微信签名方式:
paySign
:
'70EA570631E4BB79628FBCA90534C63FF7FADD89'
// 微信签名
},
function
(
res
)
{
if
(
res
.
err_msg
===
'get_brand_wcpay_request:ok'
)
{
// 使用以上方式判断前端返回,微信团队郑重提示:
// res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
}
}
)
}
}
}
</
script
>
<
style
lang=
"scss"
>
</
style
>
src/pages/pay/index.vue
浏览文件 @
998256cb
<
template
>
<
template
>
<div>
<div>
<van-button
type=
"primary"
>
默认按钮
</van-button>
<van-button
type=
"primary"
@
click=
"goPay"
>
默认按钮
</van-button>
<pay-h5
:requestParam=
"requestParam"
></pay-h5>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
...
@@ -11,6 +12,13 @@ export default {
...
@@ -11,6 +12,13 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
requestParam
:
{
product_id
:
''
,
// 提前设定
open_id
:
''
,
// 通过微信授权获取
prepay_id
:
''
,
// 通过调用接口获取
app_id
:
''
,
// 提前设定
app_secret
:
''
// 提前设定
}
}
}
},
},
mounted
()
{
mounted
()
{
...
@@ -22,6 +30,14 @@ export default {
...
@@ -22,6 +30,14 @@ export default {
api
.
getGoodsDetails
(
'6682927830365372416'
).
then
(
res
=>
{
api
.
getGoodsDetails
(
'6682927830365372416'
).
then
(
res
=>
{
console
.
log
(
res
)
console
.
log
(
res
)
})
})
},
goPay
()
{
this
.
VueEvent
.
$emit
(
'pay-wx-h5'
,
{
data
:
{},
callback
:
function
(
obj
)
{
console
.
log
(
obj
)
}
})
}
}
}
}
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论