微信支付

公众号(jsapi)支付

一、支付配置
  1、支付授权目录设置
     登录微信支付商户平台(设置后一般5分钟内生效)
     支付授权目录
     ①、如果支付授权目录设置为顶级域名,那么只校验顶级域名,不校验后缀;
     ②、如果支付授权目录设置为多级目录,就会进行全匹配
  2、授权域名设置
     开发JSAPI支付时,在统一下单接口中要求必传用户openid,而获取openid则需要在公众平台设置获取openid的域名,只有被设置过的域名才是一个有效的获取openid的域名
二、支付:
   1、统一下单------PHP调用统一下单接口获取预支付订单,并返回给前端
      url:https://api.mch.weixin.qq.com/pay/unifiedorder
      必填字段:appid
               商户号(mch_id)
               随机字符串(nonce_str)
               签名(sign)
               商品描述(body)
               商户订单号(out_trade_no)
               金额(total_fee)
               终端IP(spbill_create_ip)
               通知地址(notify_url)
               交易类型(trade_type=JSAPI)
   2、JSAPI调起支付(调起成功,提示输入支付密码)
      function onBridgeReady(){
         WeixinJSBridge.invoke(
            'getBrandWCPayRequest', {
               "appId":"appid",     //公众号id
               "timeStamp":"1395712654",    //时间戳,自1970年以来的秒数
               "nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串
               "package":"prepay_id=u802345jgfjsdfgsdg888",
               "signType":"MD5",         //微信签名方式
               "paySign":"paySign" //微信签名
            },
            function(res){
               if(res.err_msg == "get_brand_wcpay_request:ok" ){
                  // 使用以上方式判断前端返回,微信团队郑重提示:
                  //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
               } 
         }); 
      }
      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();
      }
  3、微信向前端和回调地址发送支付结果通知
posted @ 2020-11-20 17:10  邈宇  阅读(216)  评论(0)    收藏  举报