• 微信内h5调用支付


    在做公众号商城的时候,需要用到调用微信支付,这是微信官方文档教程

    https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6,详细描述了怎么调起微信支付,以下代码是我的实际业务调用微信支付完整流程

    到订单页面点击提交订单按钮,此时点击事件先向后台发个请求,公司的后端人员通过代码去对接微信的系统,生成一个预订单,然后返回一个prepay_id,具体可以看官方文档里边的业务流程图。在我们刚才向接口发送请求以后,后端会把信息返回给我们,包括appId、timeStamp、nonceStr、package、signType这个值。这些值都是我们调起微信支付必须的。

    代码如下:

                this.getFetch("公司后端提供的接口", data).then(res => {
                  if (res.data.code * 1 === 1) {
                    function onBridgeReady() {
                      WeixinJSBridge.invoke(
                        "getBrandWCPayRequest", {
                          appId: res.data.data.jsApiId, //公众号名称,由商户传入
                          timeStamp:res.data.data.timestamp, //时间戳,自1970年以来的秒数
                          nonceStr: res.data.data.nonceStr, //随机串
                          package: res.data.data.package,
                          signType: res.data.data.signType, //微信签名方式:
                          paySign: res.data.data.paySign //微信签名
                        },
                        wxResponse => {
                          if (wxResponse.err_msg == "get_brand_wcpay_request:ok") {
                            window.location.href = window.location.origin + "/couponPaySuccess?ordernum=" + res.data.data.id;
                          }
                          if (wxResponse.err_msg == "get_brand_wcpay_request:fail") {
                            _this.$toast("支付失败");
                          }
                         if (wxResponse.err_msg == "get_brand_wcpay_request:cancel") {
                           _this.$toast("支付取消");
                          }
                        }
                      );
                    }
                    if (typeof WeixinJSBridge == "undefined") {
                      if (document.addEventListener) {
                        document.addEventListener(
                          "WeixinJSBridgeReady",
                          onBridgeReady,
                          false
                        );
                      } else if (document.attachEvent) {
                        document.attachEvent("WeixinJSBridgeReady", onBridgeReady);
                        document.attachEvent(
                          "onWeixinJSBridgeReady",
                          onBridgeReady
                        );
                      }
                    } else {
                      onBridgeReady();
                    }
                  } else if (res.data.code * 1 === -1) {
                    this.autoLogin();
                  } else {
                    this.$toast(res.data.msg);
                    this.wxBtn=true;
                  }
    
                });
  • 相关阅读:
    Gitlab安装之后不能正常启动案例解决
    SSH远程采用普通用户登录linux主机报错解决方法
    记一次AD域控客户端不能正常加域的故障处理
    Horizon7.9部署和克隆问题汇总
    VMware Guest customization fails on Linux
    Ubuntu18.04安装rabbitvcs svn图形化客户端和简单实用
    Ubuntu访问samba共享文件方法
    CentOS版本禁用Ctrl+Alt+Del重启功能
    02Kubernetes架构和组件
    01Kubernetes核心概念
  • 原文地址:https://www.cnblogs.com/zmyxixihaha/p/13640492.html
Copyright © 2020-2023  润新知