记一次基于公众号的微信H5开发项目(三)

11 篇文章 0 订阅
3 篇文章 0 订阅

微信H5页面 中调用微信支付

搞了很久才更新博客,因为我刚把支付做完测试没问题以后,当天公司就把我裁了,同期的裁了所有中级开发,4月份裁了低级开发以后就有预想,也不意外吧,毕竟小公司在疫情这个情况下生存下去真的很难。

后面解决租房退房问题,搬家,离职手续什么的,花了2周多的时间,现在开始静下心搞学习准备新的面试,所以还是把项目支付相关记录一下。

第一步 还是引入js-sdk

这里就直接复制上一篇的文章的内容了,引入不用多说。

引入:

1.我选择的是npm i去下载的包,然后全局引入的,在main.js 里面

//全局 引入微信jssdk
import wx from 'weixin-js-sdk'
Vue.prototype.$wx = wx

后面再页面当中只需要this.$wx.config()成功之后即可使用你所需要的api

或者直接在你的index.html中引入


//html中引入 微信jssdk
<script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>

之后在页面中直接wx.xxxxx即可

第二步 在需要调用支付的页面中,先进行配置

2.wx.config

wxInit() {
      this.$post(
        "/xxx/initJsSdk",
        { url: window.location.href.split("#")[0] },
        data => {
          wx.config({
            debug: true, // 开启调试模式,
            appId: data.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
            timestamp: data.timestamp + "", // 必填,生成签名的时间戳
            nonceStr: data.nonceStr, // 必填,生成签名的随机串
            signature: data.signature, // 必填,签名,见附录1
            jsApiList: ["chooseWXPay"] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
          });

          // 错误时
          wx.error(function(res) {
            alert("出错了:" + res.errMsg); //这个地方的好处就是wx.config配置错误,会弹出窗口哪里错误,然后根据微信文档查询即可。
          });
        },
        err => {}
      );
    }

后台请求ticket的地址:

public final static String JSAPI_TICKET = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi";

第三步 调用支付接口

  1. wx.chooseWxPay()
//  支付
    onSubmit() {
      let that = this;
      if (!this.type) {
        this.$msg("error", "请选择支付方式");
        return false;
      }
      let params = {
        openid: JSON.parse(localStorage.getItem("wxUser")).id,//从缓存中拿openid
        paymentAmount: this.number
          ? parseFloat(this.number)
          : parseFloat(this.money)
      };
      console.log(params);
      this.$msg("loading", "支付中");
      this.$post("/xxx/addPayOrder", params, data => {
        if (data.flag == 1) {
          wx.chooseWXPay({
            timestamp: data.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
            nonceStr: data.nonceStr, // 支付签名随机串,不长于 32 位
            package: data.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
            signType: data.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
            paySign: data.sign, // 支付签名
            success: function(res) {
              if (res.errMsg == "chooseWXPay:ok") {
                //支付成功
                console.log("ok:" + res.errMsg);
                that.$msg('success','支付成功')
                that.$router.push({name:'paySuccess',query:{info:res}})
              } else {
                console.log("err:" + res.errMsg);
                that.$msg('error','支付失败,请稍后重试!')
              }
            }
          });
        }
      });
    },

首先说一下,现在我在网上找到的支付调用的方法有两种,一个是 wx.chooseWXPay ,这个是jssdk里面的方法,在config初始化完成后,根据业务需求直接调用即可。
第二种是 WeixinJSBridge.invoke() ,这一种据说正在慢慢被废弃,有时候会无法调起支付,所以没有使用这一种,但是相关代码还是贴一下,有的几年前的项目和咨询的几个老程序员还是在使用这一种:


onBridgeReady(){
   WeixinJSBridge.invoke(
       'getBrandWCPayRequest', {
           "appId":"",     //公众号名称,由商户传入     
           "timeStamp":"", //时间戳,自1970年以来的秒数     
           "nonceStr":"", //随机串     
           "package":"", //预付款id
           "signType":"", //微信签名方式:     
           "paySign":"" //微信签名 
       },
       res => {     
           if(res.err_msg == "get_brand_wcpay_request:ok" ) {
               that.$msg('success','支付成功')
           }     // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回    ok,但并不保证它绝对可靠。 
       }
   ); 
}

可以看出两种方法基本上参数都是一致的。

其实前端这边主要在支付这一块还是做好验证,以及处理支付时产生的各种场景对应的交互。
比如用户网络很卡,半天收不到响应,那么应该需要让后端去调取wx的接口主动查询当前订单的支付结果,然后前端来反馈给用户等等处理。

可惜没能等到项目正式上线就被裁了,不然还能根据实际用户的使用来积累一些特殊情况的处理办法的经验,现在这个项目交接给了公司唯一剩的一个高级前端来进行部署上线。所以这次公众号的开发就记录到这。

哎,希望公司能够尽快把拖欠的2,3,4月份工资发下来,免得还要去劳动仲裁。

后面再记录下ts的学习吧,毕竟今年明年vue3就要出正式版了,可能以后的新项目都是vue3+ts的形式了,或者vue2.x的项目升级到vue3。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 微信H5麻将小程序源码是一款基于微信开发者工具构建的小程序源码,可以在微信公众号中使用,支持多人同时游戏。该小程序源码包含了丰富的麻将玩法和经典规则,操作简单,易于上手。 该小程序源码采用了HTML5技术开发,不仅可以在微信公众号中使用,还可以在任何支持HTML5的浏览器中打开,方便快捷。小程序运行流畅,游戏画面清晰,玩家可以获得良好的游戏体验。 该小程序源码还提供了多种房间模式供玩家选择,可以自由选择不同规则、不同人数的房间进行游戏,让玩家更加尽兴。 此外,该小程序源码还集合了多种常见玩法,如明杠、暗杠、补花等,让玩家在享受经典的麻将游戏体验的同时,还能够体验到更多的玩法。 总之,微信H5麻将小程序源码是一款功能齐全,游戏画面清新、操作简便的小程序源码,能够为玩家提供优质的游戏体验。 ### 回答2: 微信H5麻将小程序源码是一种开源的代码,可以被开发者用来制作微信麻将小程序。这个源码提供了一个基本框架,包括用户登录、创建房间、加入房间、游戏进程、结算等功能。此外,这个小程序还提供了一个漂亮的UI界面和丰富的逻辑,使得玩家可以很容易地上手。 这个小程序源码是适用于微信平台的,它可以在微信内嵌入浏览器中运行。这意味着用户无需下载和安装应用程序,即可随时使用。 对开发者来说,使用这个源码可以大大减少开发时间和成本,因为他们可以直接使用这个源码作为基础,并在此基础上进行二次开发。因为源码是开放的,所以他们可以添加自己的特色功能,以使得他们的小程序更加突出和有吸引力。 对玩家来说,这个小程序提供了一个简单而有趣的游戏体验,他们可以轻松地与朋友玩麻将,享受休闲娱乐的乐趣。此外,玩家还可以与其他玩家进行联机对战,增加趣味性。 总之,微信H5麻将小程序源码是一个非常有用的开发工具,可以为开发者提供快速、简单的小程序开发平台,并为玩家提供一个快乐的麻将游戏体验。 ### 回答3: 微信H5麻将小程序源码是指基于微信小程序开发平台的一种麻将游戏源码程序。它是一种轻量级的小程序,无需下载安装,直接在微信内进行游戏,用户可享受到便捷实用的游戏体验。微信H5麻将小程序源码具备简洁易懂的操作界面、流畅的游戏画面、多样化的麻将玩法,能够满足不同用户的游戏需求。它可以支持多人同时在线游戏,用户也可以和朋友一起组队对战,一起切磋技巧。此外,微信H5麻将小程序源码也支持后台数据管理,可以实现玩家账号管理、游戏录管理和兑奖管理等多种功能。总而言之,微信H5麻将小程序源码既方便用户进行游戏,又为开发者提供了一个可自定义的平台,并有利于游戏推广和营销。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值