微信支付服务端与客户端
来源:互联网 发布:matlab矩阵中的最小值 编辑:程序博客网 时间:2024/05/21 05:05
搞了下微信的支付,坑点也有不少,参考了其他老鸟的做法,少走一些弯路,他里面描述的我就不重复了,申请参数什么的,到微信的后台去搞,
https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_1,主要看服务端的下单接口和回调接口、客户端调起支付接口,这里给下其他大牛参考的网址
http://blog.csdn.net/janice0529/article/details/38051987
http://www.360doc.com/content/15/0214/10/7044580_448519997.shtml
流程看上面这两个地址,他们那有说明了,官网上也有,废话不多说,直接上代码
服务端,客户端自定的参数上传到自己的服务器,密钥这种就不在网络上传输,在服务端配置文件或者从数据库中获取也行,看各自需要
组装参数向微信服务器post请求获得prepayid,各参数获得方式这里不多写
签名的生成方式是按照key的升序,值的排列,中间加上&拼接,在后面加上密钥,然后md5生成,到这个网址去试下参数生成的sign是否一样,这样比省事
https://pay.weixin.qq.com/wiki/tools/signverify/
生成要post的xml字符串方法
CDATA那个标签,加不加好像没影响,照他官网上的写就行,post过去掉了下坑,一直是返回格式错误,原来是我的post方法有问题,对方一直返回错误,但又不是说是post问题,下面是我的post方法,后面记得关闭流
得到的结果是xml,解析那里就不写了,网上找下很多的,拿到prepayid之后,再拼装参数,按客户端的要求生成指定的sign, 这步放在服务器上操作,安全性高一些,客户端不要存放密钥,当然不考虑安全性的另外说,
服务端生成返给客户端的sign
客户接收并解析,调出支付
客户端从上面的对自己服务器发起请求,服务器再向微信获得prepayid,再返回给客户端,客户端解析拿得调起微信所需要的参数,主要的就是那个sign,就是上面代码生成的这个sign,微信的客户端收到后,校验都成功,当然APK要签名后的,也就是和在后台填写的那个APK的签名相同,这样就能调起支付了,客户端
接下来就是微信的支付付操作界面,这些就不管了,等他操作完后,服务器会收到微信的异步通知,在下单接口的那步填写的通知地址会收到来自微信的消息,解析他的xml,签名的校验也是和上面的方法相同,就是把他返回的值都当作参数进行排列,sign排除,接上自己的密钥,md5字符串后生成的值,和他的sign比绞,相同的则认为是微信发来的并且没有被人篡改,然后将结果入库,并更新自己对应的那个订单的状态,更新成是支付成功。在上面的客户端代码中,在界面的显示支付成功后,回到主线程去查询刚才的订单结果,整个过程到此结束.
- 微信支付服务端与客户端
- 微信支付APP客户端及服务端集成
- 微信支付——调用微信客户端支付之【服务端】开发详解
- 微信支付——调用微信客户端支付之【服务端】开发详解
- 微信支付——调用微信客户端支付之【服务端】开发详解
- 微信支付——调用微信客户端支付之【服务端】开发详解
- 微信支付——调用微信客户端支付之【服务端】开发详解
- 微信支付——调用微信客户端支付之【服务端】开发详解
- 微信支付,服务端代码
- 微信支付服务端总结
- APP服务端微信支付(PHP服务端)
- 自己封装的微信支付与支付宝支付(服务端)
- 带你走进Android微信支付和支付宝支付服务端操作放到客户端的故事
- Erlang服务端与微信登录和微信支付接口的交互
- 微信移动支付服务端php
- 微信支付java 服务端实现
- android 微信支付 + node.js 服务端
- 小程序服务端集成微信支付
- javaAio例子
- 10个影响JavaEE性能问题
- android studio 下载 安装 环境配置
- Javascript变量的命名规则
- 探索推荐引擎内部的秘密,第 2 部分: 深入推荐引擎相关算法 - 协同过滤
- 微信支付服务端与客户端
- HDU 5625 Clarke and chemistry(字符串模拟题目)
- Oracle数据库如何创建Database Link呢
- Java修饰符关键词大全
- Build.VERSION_CODES.HONEYCOMB
- eclipse 汉化教程(中文语言包的下载和安装)
- 51单片机系列知识11--串行通信(2)
- 欢迎使用CSDN-markdown编辑器
- Java不同压缩算法的性能比较