欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue模式下h5调用支付宝支付

程序员文章站 2022-03-22 10:11:13
1.vue模式下直接跳转支付宝APP支付main.js里面全局设置function plusReady() { checkUpdate() // 设置一个全局plusready状态 store.state.isplusReady = true store.state.storageEngine = plus.storage plus.screen......

1.vue模式下直接跳转支付宝APP支付
main.js里面全局设置

function plusReady() {
    checkUpdate()
        // 设置一个全局plusready状态
    store.state.isplusReady = true
    store.state.storageEngine = plus.storage
    plus.screen.lockOrientation('portrait')
    plus.navigator.setFullscreen(false)

    // 设置一个全局plusready状态
    store.state.isplusReady = true
    store.state.storageEngine = plus.storage

    // 监听返回按键
    let now = false
    let time = null
    plus.key.addEventListener('backbutton', function() {
        // 如果是首页则执行退出操作
        if (
            router.currentRoute.path === '/home' ||
            router.currentRoute.path === '/my-center'
        ) {
            time = null
            if (now) {
                now = false
                plus.runtime.quit()
            } else {
                now = true
                plus.nativeUI.toast('再按一次退出', { duration: 'short' })
                time = setTimeout(() => {
                    now = false
                }, 1000)
            }
            // 如果是内页则执行路由返回操作
        } else {
            router.go(-1)
        }
    })

    if (process.env.NODE_ENV === 'production') {
        //初始化数据库 就是当登录的时候拉取缓存在本地的信息
        db.syncDb2Memory()
            //初始化登录信息
        initUserInfo()

        let app = new Vue({
            router,
            store,
            created() {
                wsStart()
            },
            render: h => h(App)
        }).$mount('#app')
    }
}
Vue.mixin({
    computed: {
        plusReady() {
            return this.$store.state.isplusReady
        }
    }
})

组件中调用支付

在export default上面写
let aliChannel;
let wxChannel;
window.plus && plus.payment.getChannels(function(channels) {
  for(var i = 0; i < channels.length; i++) {
    if (channels[i].id == "wxpay") {
      wxChannel=channels[i];
    }else{
      aliChannel=channels[i];
    }
  }
})
支付宝支付
            plus.payment.request(
              wxChannel,
              payConfig,
              result=> {
                plus.nativeUI.alert("支付成功!", ()=> {
                  _this.$router.replace({ name: "lotterydraw" })
                });
              },
              function(error) {
                console.log(JSON.stringify(error))
                plus.nativeUI.alert("支付未成功");
              }
           

本文地址:https://blog.csdn.net/weixin_42790916/article/details/85987062

相关标签: vue