微信支付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使用心得的更多相关文章
- 微信公众号支付(三):页面调用微信支付JS并完成支付
一.调用微信的JS文件 1.首先要绑定[JS接口安全域名],“公众号设置”的“功能设置”中 2.引入JS文件 备注:支持使用 AMD/CMD 标准模块加载方法加载 <script type=&q ...
- 微信小程序中的微信支付js代码和流程详解
微信支付流程 步骤 (一)获取用户的信息 (二)统一下单(返回的prepay_id用于第(三)步的请求参数) (三)发起支付请求 操作(这边假设你已经获得了用户的openId) (一).获取用户ope ...
- 一个不错的微信应用JS API库
1.API能实现什么? 1.分享到微信朋友圈 2.分享给微信好友 3.分享到腾讯微博 4.新的分享接口,包含朋友圈.好友.微博的分享(for iOS) 5.隐藏/显示右上角的菜单入口 6.隐藏/显示底 ...
- 微信支付.NET版开发总结(JS API),好多坑,适当精简
前2天,做一个手机网页的微信支付的项目,费了好些周折,记录一下.接下来,按照开发步骤,细数一下,我遇到的那些坑. [坑1]官方邮件中下载的demo只有PHP版本,其他版本没有给链接.可能让人误以为只有 ...
- 微信支付开发(3) JS API支付
由于微信支付接口更新,本文档已过期,请查看新版微信支付教程.地址 http://www.cnblogs.com/txw1958/category/624506.html 本文介绍如何使用JS API支 ...
- 微信支付.NET版开发总结(JS API),好多坑,适当精简。
前2天,做一个手机网页的微信支付的项目,费了好些周折,记录一下.接下来,按照开发步骤,细数一下,我遇到的那些坑. [坑1]官方邮件中下载的demo只有PHP版本,其他版本没有给链接.可能让人误以为只有 ...
- C#开发微信门户及应用(32)--微信支付接入和API封装使用
在微信的应用上,微信支付是一个比较有用的部分,但也是比较复杂的技术要点,在微商大行其道的年代,自己的商店没有增加微信支付好像也说不过去,微信支付旨在为广大微信用户及商户提供更优质的支付服务,微信的支付 ...
- 微信支付开发若干问题总结,API搞死人(谢谢ζั͡ޓއއއ๓http://www.thinkphp.cn/code/1620.html)血淋淋的教训,第二次栽这里了
近日,我研究了微信支付的API,我是用简化版的API,首先简述一下流程: 1.通过APP_ID,APP_SCRECT获取网页授权码code, 2.利用code获取用户openid/userinfo 3 ...
- Java中的微信支付(1):API V3版本签名详解
1. 前言 最近在折腾微信支付,证书还是比较烦人的,所以有必要分享一些经验,减少你在开发微信支付时的踩坑.目前微信支付的API已经发展到V3版本,采用了流行的Restful风格. 今天来分享微信支付的 ...
随机推荐
- ant例子
1.安装ant 下载解压→环境变量配置→cmd输入ant 出现 Buildfile: build.xml does not exist! 代表安装成功 参考文章:http://www.cnblogs. ...
- Java 开源分布式缓存框架Ehcache
http://www.codeceo.com/article/java-ehcache.html
- html select用法总结
本文将介绍select 原生的常用方法,这些都是经过测试,兼容ie6到ie10,及chrome,火狐等,也就是说大部分浏览器都兼容.如果大家发现有不兼容的情况,可以跟我留言. 我们对基本的用法了如指掌 ...
- Linux下编译安装redis,详细教程
话不多说,直接开工 准备工作: 本人测试环境:Win10 虚拟机:VM Linux:CentOS5.5 (已搭建好LNMP环境) 软件包:redis-2.6.14.tar.gz (Linux下redi ...
- Hibernate学习笔记--------4.查询
一.Get/Load Get方法是立即检索,而load是延迟检索,他们都是根据主键进行查询.在<class>标签中,若把lazy属性改为false,load方法就会立即检索,class中的 ...
- Java虚拟机专题
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/5160083. ...
- IE6 BUG margin 两倍
触发条件: 父元素包含子元素 子元素设置了浮动(float) 子元素设置了外边距(margin) 浮动方向和边距方向一致 解决方案: 给该子元素添加 display:inline;
- HttpWebRequest 上传图片
public string HttpUploadFile() { string url = "http://localhost:50380/WebForm1.aspx"; stri ...
- 基于mvc结构的前端页面框架搭建
前端开发一年了,向大家交流下自己实践总结下来的一点点开发心得.人生难免磕磕碰碰,前进的道路很多,在学习工作上我们都得学会如何让自己过的更高效,代码亦是如此. 下面,开始介绍自己总结的前端框架搭建(布局 ...
- Android——简单音乐播放器
使用MediaPlayer做的简单音乐播放器,更多内容请到百度经验查看 http://jingyan.baidu.com/article/60ccbceb63452364cab197f1.html ...