美文网首页
微信公众号网页 微信支付

微信公众号网页 微信支付

作者: 莫伊剑客 | 来源:发表于2021-05-14 09:24 被阅读0次

wechatPay.js封装

export default {
  isWechat: function () {
    var ua = window.navigator.userAgent.toLowerCase();
    if (ua.match(/micromessenger/i) == 'micromessenger') {
      return true;
    } else {
      return false;
    }
  },
  jsApiCall(data, callback_succ_func, callback_error_func) {
    //使用原生的,避免初始化appid问题
    WeixinJSBridge.invoke('getBrandWCPayRequest', {
      appId: data['appId'],
      timeStamp: data['timeStamp'],
      nonceStr: data['nonceStr'], // 支付签名随机串,不长于 32 位
      package: data['package'], // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
      signType: data['signType'], // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
      paySign: data['paySign'], // 支付签名
    },
      function (res) {
        var msg = res.err_msg ? res.err_msg : res.errMsg;
        //WeixinJSBridge.log(msg);
        switch (msg) {
          case 'get_brand_wcpay_request:ok': //支付成功时
            if (callback_succ_func) {
              callback_succ_func(res);
            }
            break;
          default: //支付失败时
            WeixinJSBridge.log('支付失败!' + msg + ',请返回重试.');
            if (callback_error_func) {
              callback_error_func({ msg: msg });
            }
            break;
        }
      })
  },
  payment: function (data, callback_succ_func, callback_error_func) {
    if (!this.isWechat()) {
      return;
    }
    if (typeof WeixinJSBridge == "undefined") {
      if (document.addEventListener) {
        document.addEventListener('WeixinJSBridgeReady', this.jsApiCall, false);
      } else if (document.attachEvent) {
        document.attachEvent('WeixinJSBridgeReady', this.jsApiCall);
        document.attachEvent('onWeixinJSBridgeReady', this.jsApiCall);
      }
    } else {
      this.jsApiCall(data, callback_succ_func, callback_error_func);
    }
  }
}

调用

const res = await payment(params);
      console.log(res);
      if (res.success) {
        const {
          appid,
          nonceStr,
          package: pack,
          paySign,
          timeStamp,
        } = res.result;
        const data = {
          appId: appid,
          nonceStr,
          package: pack,
          paySign,
          timeStamp,
          signType: "MD5", // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
        };

        wechatPay.jsApiCall(
          data,
          function (result) {
            console.log(result);
            alert(result);
          },
          function (err) {
            console.log(err);
            alert(JSON.stringify(err));
          }
        );
      }

相关文章

  • 微信支付前端开发指南

    使用场景 微信公众号内嵌H5网页调用微信支付 在微信浏览器中的网页唤起微信支付界面 详情可以查阅微信支付官方文档 ...

  • 微信公众号网页支付summer版

    该文仅对于中间这种支付方式有参考价值哟 一、开发背景 在微信公众号中,需要进行微信支付且为微信公众号网页支付。 二...

  • 微信公众号网页 微信支付

    wechatPay.js封装 调用

  • NodeJS实现微信公众号内网页支付&沙箱环境测试验收

    本文主要关注在微信公众号内网页支付的NodeJS实现,总结了编码过程中遇到的一些问题。因为在弄微信公众号网页支付的...

  • 跨公众号支付的实现方式

    做微信公众号开发和运营的人应该都知道微信上的微商城或者使用微信支付的网页,只能在自己的公众号上去使用,跨公众号使用...

  • 基于Node.js的微信JS-SDK后端接口实现(三)

    微信公众号开发之五微信网页授权 开始之前建议先阅读微信官方文档 微信公众号开发之五微信网页授权 一.网页授权的作用...

  • JSSDK调用

    微信JS-SDK是微信公众号平台面向网页开发这提供基于微信内的网页开发工具包。 接口大类分为:分享接口、微信支付、...

  • PHP微信公众号支付开发总结

    微信公众号开发是很常见的开发,其中微信支付占有很大的比重。微信公众号分为服务号和订阅号,服务号支持微信支付。 前期...

  • 关注公众号领红包常见问题解答

    一、关注领红包对公众号的要求: 公众号必须开通“微信支付”和“现金红包”功能权限 登录微信公众平台 – 微信支付(...

  • 微信支付

    公众号支付是指在微信app中访问的页面通过js直接调起微信支付; 一:设置域名 登录微信公众平台; 微信支付中设置...

网友评论

      本文标题:微信公众号网页 微信支付

      本文链接:https://www.haomeiwen.com/subject/ocofjltx.html