做微信公众号支付,在前台调起支付时,前台向服务器端发起ajax请求,服务器端组装支付参数,然后返回给前台。
理论上应该没有问题,但支付总是报错:2支付缺少参数:appId。但直接复制console控制台打印出来的服务器端返回的jsApiParameters上去,居然是对的。
对比之后才发现,他们的区别在于,第1种方式传入的实际是一个字符串,第2种方式传入的是是一个对象,而WeixinJSBridge.invoke()方法要求传入的是一个对象而非字符串。
解决方法是第1种方式将字符串转移为对象。