微信支付JS API使用心得

微信的接口真的很坑爹,只返回成功或失败,从来不会告诉你为什么失败。这个微信支付的js接口也是调了一个下午才成功,期间踩了不少坑,在这里总结一下,而且把支付接口封装成了一个js文件,这样以后调用就很方便了。

坑1:公众号里面可以设置测试目录,例如是 www.baidu.com/pay/,这样设置的,那么的你支付的页面的url一定要在这个目录下面,而且不能有二级目录,例如支付的url是www.baidu.com/pay/1的话是可以的,但是www.baidu.com/pay/1/1这样是不可以的,会返回access denied

坑2:支付的链接一定要在该公众号里面打开的,例如点击公众号按钮打开,所以测试的时候可以用公众号把支付链接发送给测试的个人微信号,这样个人微信号打开该链接才能触发微信支付的接口,否则也是返回access denied

 

下面是调用我封装好的支付接口的代码

<script src="/crowd/js/sha1.js"></script>
<script src="/crowd/js/weixin_pay.js"></script>
<script src="/crowd/js/jQuery.md5.js"></script>
<script type="text/javascript">
    function after_pay(ret){
        alert(ret[0]+ret[1])
    }
    function pay(money){
        ret=weixin_pay(‘{{ip}}‘,money,‘支持老师‘,‘‘,after_pay)

    }
</script>

需要导入三个js文件,一个是sha1加密方法,一个是md5的加密方法,最后一个就是我封装好的支付接口。下载地址:http://download.csdn.net/detail/siding159/7747653

 

wexin_pay方法需要输入四个参数,用户客户端的ip地址,我的做法是后端获取,然后返回网页的时候带上,支付的金额数量,支付说明,订单号out_trade_no(微信文档那里说这个需要在商户内部是唯一的,就是唯一标识这个订单的编号,这里可以输入为空,这样的话,weixin_pay函数里面会自己生产一个唯一的字符串,然后再ret里面返回)和支付完成后回调的函数after_pay

使用weixin_pay.js需要修改里面的参数为自己公众号的参数,例如appid那些。

 

微信支付JS API使用心得,布布扣,bubuko.com

微信支付JS API使用心得

上一篇:Entity Framework Core生成列并跟踪列记录


下一篇:【玩转微信公众平台之九】 第一个功能:消息自己主动回复