美文网首页
react 微信公众号支付

react 微信公众号支付

作者: 小情兽丶 | 来源:发表于2018-05-21 23:31 被阅读0次

    前几天做微信支付的时候遇到了2个问题。

    1.微信支付调用JSAPI缺少参数:appid
    2.当前页面的URL未注册
    

    关于第一个问题,在“微信开发者”工具上调试之后发现是因为签名不对,这个在浏览器里好像是检查不出来的。修改签名之后一切就正确了。

    2.当前页面的URL未注册
    

    这个问题主要是在iphone上出现的。

    在微信商家平台上,支付url只能填写5个。并且要具体到最后一个目录。

    假设我的支付页面是

    wxpay/order/pay/123
    

    那么支付页面就要写到

    wxpay/order/pay/ 
    

    最后一个才是可以更改的。

    举一个例子

    A 代表 商品详情页      wxpay/order/A/xx
    B 代表 商品购买页      wxpay/order/B/xx
    C 代表 订单生成页(也就是付钱页) wxpay/order/C/xx
    

    在iphone上,它只记录了你的第一个页面,也就是A,但是你的实际支付页面是C,所以在此就需要一个强制刷新。

    如果有出现这个问题,可以先强制刷新试一下,如果不可行,那么就不用看下面的方法了。

    强制刷新的办法是

        location.reload([true]);
    

    如果直接放这么一句话,就会无限刷新,所以此时要在外边加一层判断,

      componentDidMount() {
        let {reloadState} = this.props.state;
        if (reloadState) {
          dispatch(changeReloadState());
          //IOS 不能识别支付目录,需要强制刷新一次`
          location.reload([true]);
        }
      }
    

    在全局中声明一个变量,true。等初始化的时候,刷新页面,并且修改为false

    export let changeReloadState = () =>{
      return {
        type:ActionType.ORDER_PAY_CHANGE_RELAOD_STATE,
        payload:{reloadState:false}
      }
    }
    

    相关文章

      网友评论

          本文标题:react 微信公众号支付

          本文链接:https://www.haomeiwen.com/subject/wrdcjftx.html