react 微信公众号支付

前几天做微信支付的时候遇到了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}
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,536评论 25 708
  • 转载链接 注:本文转载知乎上的回答 作者:初雪 链接:https://www.zhihu.com/question...
    pengshuangta阅读 28,772评论 9 295
  • 本人参加互联网大会的签名 参加大会的照片 中央电视台的节目主持人樊登和本人的合影 歌星林依轮(唱爱情鸟)和本人同学...
    蔺瑞厂阅读 4,884评论 0 3
  • 又到十月,随之而来的是秋高气爽,悠闲的十一长假,当然还有随份子。 十月份一直都是结婚集中区,日子吉利,天气怡人,真...
    小城米店阅读 397评论 0 1
  • 1.不要等到有了再开始,因为你不知道什么时候会有,也不知道会不会有,只要你愿意,那就先开始 很多时候是我们想太多。...
    媚儿大人阅读 220评论 0 0