第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

微信公眾號(hào)支付完整流程案例

標(biāo)簽:
Java

简介

微信公众号支付,顾名思义就是必须在微信中实现支付,并且需要公众号配合。

教程

由于我们使用的是第三方封装好的接口,这里省去了我们自己配置公众号。为什么用第三方?因为个人没有申请权限。

交互细节:

以下是支付场景的交互细节,请认真阅读,设计商户页面的逻辑:

  • 用户打开商户网页选购商品,发起支付,在网页通过JavaScript调用getBrandWCPayRequest接口,发起微信支付请求,用户进入支付流程。

  • 用户成功支付点击完成按钮后,商户的前端会收到JavaScript的返回值。商户可直接跳转到支付成功的静态页面进行展示。

  • 商户后台收到来自微信开放平台的支付成功回调通知,标志该笔订单支付成功。

前端引入:

<script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

后台逻辑,基本上就这三步:

  • 获取授权链接

  • 根据 code 获取 openId

  • 根据 openId 获取支付参数

/**
 * 获取授权链接,首先调用此方法
 * @return
 */
@GetMapping(value="getOauthUrl")
public void getOauthUrl(HttpServletResponse response) throws IOException {
    String url="https://xxx.xxxx.vip/pay/weiXin.html?a=1";
    String oauthUrl = WxPay.getWxOauthUrl(null, url);
    response.sendRedirect(oauthUrl);
}

/**
 * 根据 code 获取 openId
 * @param code
 * @return
 */
@PostMapping(value="getWxOauthInfo")
public Result getWxOauthInfo(String code) {
    WxOauthInfo wxOauthInfo = WxPay.getWxOauthInfo(code);
    return Result.ok(wxOauthInfo);
}

/**
 * 下单并获取请求参数
 * @return
 */
@PostMapping(value="jsApiPay")
public Result jsApiPay(Product product) {
    return wxPayService.jsApiPay(product);
}

前台逻辑:

<script th:inline="none">
var order = {};
var openId;
$(function(){
    var code = GetRequest()['code'];
    $.ajax({
        url:"/pay/getWxOauthInfo",
        type: "POST",
        data : {'code':code},
        success: function (result) {
            openId = result.msg.openId;
        }
    });
});
function callPay(){
    $.ajax({
        url:"/pay/jsApiPay",
        data : {
            productId:1,
            body:"胡列娜精美手办",
            totalFee:'1',
            openId:openId
        },
        type: "POST",
        success: function (result) {
            if(result.code==0){
                order = JSON.parse(result.msg);
                order.openId = openId;
                pay();
            }
        }
    });
}
function pay(){
  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();
  }
}
function onBridgeReady(){
    WeixinJSBridge.invoke('getBrandWCPayRequest',order,function(res){
         //使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
         if(res.err_msg == "get_brand_wcpay_request:ok"){
             //微信 自带 支付成功效果
         }else if(res.err_msg == "get_brand_wcpay_request:cancel"){
             alert("用户取消支付!");
         }else if(res.err_msg == "get_brand_wcpay_request:fail"){
             alert("支付失败!");
         }
    })
}
function GetRequest() {
   var url = location.search;
   var theRequest = new Object();
   if (url.indexOf("?") != -1) {
      var str = url.substr(1);
      strs = str.split("&");
      for(var i = 0; i < strs.length; i ++) {
         theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
      }
   }
   return theRequest;
}

演示

网址:pay.cloudbed.vip/login.html

账号:pay 密码:123456

支付服务:支付宝,微信,银联详细 代码案例:

gitee.com/52itstyle/spring-boot-pay

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開(kāi)發(fā)工程師
手記
粉絲
1.7萬(wàn)
獲贊與收藏
2438

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消