微信支付(公众号支付JSAPI)

微信公众号支付/微信浏览器支付(JSAPI)

一:获取微信支付四大参数

官方连接:pay.weixin.qq.com/wiki/doc/ap…php

步骤二:平台配置

  1. 配置支付目录:商户平台。

配置此目录是代码中“微信支付”所在页面的地址,一级域名需ICP备案。前端

  1. 配置受权域名:微信公众平台。

支付过程当中须要获取用户openid,必须通过网页受权配置才能够,否则获取不到openid。api

中间遇到的小问题: 在放置MP...v4kGCjvXcmR4X90w.txt文件时,已经放置在了服务器下,但在微信公众号配置页面仍提醒未上传。浏览器

解决方案:bash

参考连接:blog.csdn.net/u010634066/…服务器

步骤三:开发流程

微信支付原理即调用官方文档的“统一下单”接口,将微信服务器返回的参数进行加工后返回到前台页面。全部参数解释请参考官方文档:pay.weixin.qq.com/wiki/doc/ap…微信

官方文档: pay.weixin.qq.com/wiki/doc/ap…app

关于获取openid:微信公众平台

  1. window.location.href = 'open.weixin.qq.com/connect/oau…'

点击该路径跳转后,连接内带有参数:code微信支付

  1. 获取到code后请求如下连接获取access_token: api.weixin.qq.com/sns/oauth2/… 拿到咱们须要的openid
function onBridgeReady(){
   WeixinJSBridge.invoke(
      'getBrandWCPayRequest', {
        "appId": appId,     //公众号名称,由商户传入     
        "timeStamp":timeStamp,         //时间戳,自1970年以来的秒数     
        "nonceStr":nonceStr, //随机串     
        "package":package,     
        "signType":signType,         //微信签名方式:     
        "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();
}
复制代码

遇到的坑

  1. 签名错误。 显示签名错误,即后台传输的签名有误。按照官方文档:pay.weixin.qq.com/wiki/doc/ap… 从新生成传输便可。若是还不行,先检查微信公众平台内ip白名单是否添加了服务器IP和线上域名IP,若是都添加了再次生成一次API秘钥。
  2. 商户平台开发配置,支付受权目录内地址需明确至支付的当前页面 eg:www.baidu.com/payNow/
相关文章
相关标签/搜索