微信支付流程

       正常情况下如果我们的项目如果涉及微信支付或者其他功能,我们都会在项目进来之前先获取到openId存到后台备用,也就是说只有先获取到openId这个唯一标识才能实现微信相关的功能使用。

首先获取openId

       方法一

        后台直接返回给我们一个Url让我们去跳转,然后使用window.location跳转就行,类似下面这样的一个链接地址

window.location = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=31231&redirect_uri=我们的后台接口&response_type=code&scope=snsapi_base&state="+Math.random()+"#wechat_redirect";

这个跳转过程其实是在请求微信接口,请求成功后微信的返回结果会通过接口的形式返给后台,后台解析该JSON串就可以拿到openId,然后后台会重定向到我们页面。

         方法二

          首先我们需要通过接口拿到商户的AppId用来获取payCode,

var myUrl = encodeURIComponent(window.location.href)
window.location = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid + "&redirect_uri=" + myUrl + "&response_type=code&scope=snsapi_base&state="+Math.random()+"#wechat_redirect";

这样拼接好后,直接会跳转到微信请求,完成后微信会自动返回到我们当前这个页面,并且会将payCode拼接到我们当前这个页面的url里,我们只需要解析当前url获取到payCode就可以了,之后我们将payCode通过接口发给后台,后台就可以拿到openId了

有了openId之后拉起就可以拉起微信支付了

         方法一 

        直接由后台去拉起微信支付,完成相关后续工作

        方法二

        由前端H5拉起微信支付  

            首先通过接口获取微信支付相关的参数         

           然后将下面代码放到项目中即可

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();
 }
   onBridgeReady=function () {
            var  _this = this;
            WeixinJSBridge.invoke(
                'getBrandWCPayRequest',wxPayResp, //微信支付参数
                function (res) {
                    if(res.err_msg == "get_brand_wcpay_request:ok"){
                        //支付成功跳转的本地页面
                    } else {
                        //支付失败或取消支付跳转的本地页面
                    }
                }
            );
        },

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值