总结做支付过程中遇到的坑
来源:互联网 发布:mac触摸板怎么右键 编辑:程序博客网 时间:2024/04/30 03:58
一、支付宝的坑要比微信的少些
这个真是直观的感受,不得不说支付宝的文档还是比较健全的,客服也非常人性化,直接点客服进去是机器人,但一个问题好像问3次得不到你想要的解答,他会提示接入人工客服。接入人工客服就感觉好多了。
微信这边,文档倒也可以,但问题解答太差,也没有客服,机器的也没有。有问题只能百度..
二、支付宝提供了很好的SDK
方便了和项目的集成,方便了开发。计算签名,验签都给做好了,只要参数传对,就没有什么问题。
唯一有点问题的就是支付宝接口升级,维护老版本支付就稍微麻烦点。
支付宝的API文档里有很多这样的代码示例
诶~看上去很方便,直接复制一下,就搞定了。
结果运行的时候就会请求失败,参数不对。但看看参数,也都没有问题。
这也是一个坑,setBizContent中的参数最好自己手打,直接复制下来的可能会有问题。
三、微信支付遇到的问题
1、是中文编码问题,商品描述、详情,避免不了用中文,可如果不注意,请求下单的时候就容易遇到签名错误,其实不是签名算错了,而是你传过去的中文发生乱码了,微信支付服务器算的sign和你传过去的不匹配,你把商品描述换成数字、英文,就好使了。
网上好多都是要你在拼参数的时候把中文转码,比如这样
weixin.setBody( new String(weixin.getBody().getBytes("utf-8")) );
但我项目里这样做并不好使,因为我的字符集本身就是utf8了。最后发现,其实是在发送请求的时候没有设置编码。比如这样
PrintWriter pout = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8"));
2、微信退款返回的结果,不是指退款成没成功
而是指退款申请成功与否。具体退款成没成功,得调用退款查询接口,来查询退款的状态。这得注意一下。
3、关于重新支付的问题
无论支付宝还是微信,下单时都需要填写一个商户订单号,对于同一商户来说,这个号应该是唯一的。下单成功后,根据返回的二维码链接,或者调用APP进行支付。这时就会有好死不死爱死不活故意或者不故意的没付款,比如忘用了一张优惠卷。然后进行重新付款时,就产生了一些问题:
对于支付宝,同一商户同一订单号的,另一些参数进行了修改,是可以再次提交下单成功的,比如使用了优惠卷,需付钱数发生了改变。
但微信支付的时候,同一商户同一订单号下,只有随机字符串可以改变,其他参数都不可改变,才会下单成功。
所以对于微信支付,订单确认去支付后,要么支付,要么重新下单。
这些比较印象深刻,两家的支付也再不断完善,可能当你看这篇文章时,上面这些坑可能都不存在了。
现在微信上也提供了SDK和demo,方便了大家的开发。
- 总结做支付过程中遇到的坑
- 做项目过程中遇到的那些坑
- 做项目过程中遇到的问题
- 支付宝技术集成过程中遇到的问题记录
- 微信支付过程中遇到的问题
- 安卓接入微信支付解析,细数开发过程中遇到的坑
- 开发过程中遇到的问题总结
- 在开发微信支付过程遇到的坑
- 在做项目的过程中TabHost遇到的问题
- 做Java项目过程中遇到乱码问题的解决方案
- 利用loadrunner做性能测试过程中遇到的问题
- 在做单点登陆过程中遇到的问题
- 在使用appium做自动化的过程中遇到的坑
- 总结实现微信支付所遇到的坑
- 在做Win8官方网站中遇到的问题总结
- 支付宝支付遇到的一些坑!!!!!
- 微信支付遇到的问题总结
- 微信、支付宝、银联支付遇到的坑 总结
- zabbix学习(一)安装和配置zabbix-server
- not all arguments converted during string formatting
- f-stack 队列和进程关系
- java最后一张学习卡___别再犯这样的错__第一节内容
- ssm搭建shiro安全框架
- 总结做支付过程中遇到的坑
- 使用jQuery插件qrcode生成二维码
- 面向过程的程序设计
- linux网络编程之tcp的三次握手和四次挥手
- java-可逆加密算法
- TCP协议(保留位URG、PSH,定时器,连接的建立和断开)
- matlab之删除其中一个subplot
- 【WPF】遍历DataGrid
- 合并分支dev的项目到主干trunk中