说说微信支付那点事
2015-08-28 11:04
681 查看
从刚开始到现在做得有支付的项目也有几个了,以前都没有微信支付的接入需求,接入支付宝和银联就好了做起来比较简单,尤其是支付宝对于开发者提供的技术支持相当的给力。给开发人员和客服们点个赞。。。不得不吐槽一下微信做得太麻烦,而且demo不给力,没有技术客服和团队支持不友好。
哎,现在主要说一说刚刚接入微信支付,也是写这篇博客的目的,为了记载梳理和告诉像我一样在挣扎在微信支付死脑细胞的程序员。微信的API是收费的,先说一下申请步骤:
(详细步骤不赘述)
1.注册微信开放平台
2.获取开发者资质
3.创建你的APP应用
4.在你APP里面申请微信支付功能
然后你就开始等待。。。。。。。
审核通过之后他会给你往申请时候的邮箱发邮件(信息很重要不要丢),然后你微信开放平台微信状态就是这种了
。
点击查看详情进入下一个页面这个时候你就用到了邮箱
4000
给的商户号了(商户号:微信指定给商家的账号,交易信息和API信息都可以在这查看)
然后到了一个经常出现BUG的一步,很多人都会忘记,在商家平台验证之后,下载证书到电脑上,然后设置32位的API 秘钥,iOS demo参数名为 PARTNER_ID ,安卓demo参数为
APP_KEY.
配置好之后就是头疼的问题了:
在微信开放平台上你会看到微信支付的开发文档(不是很详细),可以下载iOS和安卓SDK。那么问题来了,微信支付文档的时序图是必须商家后台接入的,但是开放平台里没有服务端的demo。打电话给微信支付客服,微信没有技术支持客服。网上介绍的大部分都是2014年v1.2版的。。
微信支付下单流程:
1.统一下单:统一下单也就是预支付,微信支付推荐在商家服务端进行。iOS和安卓的demo都模拟了统一下单过程。微信支付签名是用sha1+md5方式,请求是post发送xml格式的数据,得到由服务器返回的预支付id和一些信息之后。
2.进行第二次签名调起微信支付。(iOS不忘记在urltypes添加微信)
3.回调通知返回(如果集成了支付宝,友盟等第三方需在方法判断如下代码)
demo说明和BUG:
iOS端最下面有两个按钮:
1.一个是微信测试签名(这个按钮是在客户端进行统一下单和签名)
2.微信支付(在商家服务器端进行统一下单签名,客户端只需得到服务器端的参数调起微信)
集成友盟和shareSDK等调用微信API的项目BUG:
问题:--- 没有调起微信支付或者出现一个确定按钮
因为之前集成的微信API没有微信支付的权利和功能,第二次导入的微信包和第一次重复了而且被第一次覆盖了。所以跳进去之后调不起微信返回错误码-1
第二次补充: 还有一个原因是参数格式错误(看一下你们的汉字编码)
解决办法:
删掉友盟的微信API,2个h文件,一个.a静态库
安卓端:
安卓的demo没有太多的注释, 我出现了demo模拟下单签名之后第一次可以调用重复无法调用的状况,接入正式项目问题就好了。也没有过多深究。
服务端:
服务端是最大的问题,希望腾讯公司对开发者这一块重视起来,服务端demo几乎找不到,网上和我们一样的开发者也很多。
我们最后参考安卓端下单的代码完成。
第一次接入遇到的问题还是挺多的,希望以后接入微信支付的同学们少费点劲。。。。又该上班了。
补充:在服务端完成时出现错误,最后总结出获得预支付id之后的第二次签名需要在客户端实现。。这样就成功了。
哎,现在主要说一说刚刚接入微信支付,也是写这篇博客的目的,为了记载梳理和告诉像我一样在挣扎在微信支付死脑细胞的程序员。微信的API是收费的,先说一下申请步骤:
(详细步骤不赘述)
1.注册微信开放平台
2.获取开发者资质
3.创建你的APP应用
4.在你APP里面申请微信支付功能
然后你就开始等待。。。。。。。
审核通过之后他会给你往申请时候的邮箱发邮件(信息很重要不要丢),然后你微信开放平台微信状态就是这种了
。
点击查看详情进入下一个页面这个时候你就用到了邮箱
4000
给的商户号了(商户号:微信指定给商家的账号,交易信息和API信息都可以在这查看)
然后到了一个经常出现BUG的一步,很多人都会忘记,在商家平台验证之后,下载证书到电脑上,然后设置32位的API 秘钥,iOS demo参数名为 PARTNER_ID ,安卓demo参数为
APP_KEY.
配置好之后就是头疼的问题了:
在微信开放平台上你会看到微信支付的开发文档(不是很详细),可以下载iOS和安卓SDK。那么问题来了,微信支付文档的时序图是必须商家后台接入的,但是开放平台里没有服务端的demo。打电话给微信支付客服,微信没有技术支持客服。网上介绍的大部分都是2014年v1.2版的。。
微信支付下单流程:
1.统一下单:统一下单也就是预支付,微信支付推荐在商家服务端进行。iOS和安卓的demo都模拟了统一下单过程。微信支付签名是用sha1+md5方式,请求是post发送xml格式的数据,得到由服务器返回的预支付id和一些信息之后。
2.进行第二次签名调起微信支付。(iOS不忘记在urltypes添加微信)
3.回调通知返回(如果集成了支付宝,友盟等第三方需在方法判断如下代码)
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { NSLog(@"%@",url.host); //跳转支付宝钱包进行支付,需要将支付宝钱包的支付结果回传给SDK if ([url.host isEqualToString:@"safepay"]) { //支付宝 }else if([url.host isEqualToString:@"pay"]){ //微信 }else{ //友盟或者其他 } return YES; }
demo说明和BUG:
iOS端最下面有两个按钮:
1.一个是微信测试签名(这个按钮是在客户端进行统一下单和签名)
2.微信支付(在商家服务器端进行统一下单签名,客户端只需得到服务器端的参数调起微信)
集成友盟和shareSDK等调用微信API的项目BUG:
问题:--- 没有调起微信支付或者出现一个确定按钮
因为之前集成的微信API没有微信支付的权利和功能,第二次导入的微信包和第一次重复了而且被第一次覆盖了。所以跳进去之后调不起微信返回错误码-1
第二次补充: 还有一个原因是参数格式错误(看一下你们的汉字编码)
解决办法:
删掉友盟的微信API,2个h文件,一个.a静态库
安卓端:
安卓的demo没有太多的注释, 我出现了demo模拟下单签名之后第一次可以调用重复无法调用的状况,接入正式项目问题就好了。也没有过多深究。
服务端:
服务端是最大的问题,希望腾讯公司对开发者这一块重视起来,服务端demo几乎找不到,网上和我们一样的开发者也很多。
我们最后参考安卓端下单的代码完成。
第一次接入遇到的问题还是挺多的,希望以后接入微信支付的同学们少费点劲。。。。又该上班了。
补充:在服务端完成时出现错误,最后总结出获得预支付id之后的第二次签名需要在客户端实现。。这样就成功了。
相关文章推荐
- CSDN专家精选,微信开发学习路线大有看头!
- 苹果审核reject理由大全(12):qq、微信的登录、分享等功能
- 微信开发第二篇了解微信运行机理,并简单介绍服务器被动交互一些功能
- 微信统一支付接口返回“签名错误”的可能原因
- Android微信智能心跳方案
- 在微信中添加自己的微信公众号名片以及发纯文字链接教程
- 微信开发第一篇了解微信公众平台(所有测试代码已上传博客)
- 微信开放平台之公众号第三方平台开发及全网发布验证
- 11款手机微信小游戏源码特效
- Android 高仿微信6.0主界面 切换图标变色
- 一个Hibernate小程序
- 第三方集成微信登录、分享等功能的sdk
- android 记录一下自己的微信支付
- c#调用微信接口获取token值
- 微信分享功能
- iPhone屏幕尺寸说明及iPhone在微信上的一些表现
- [转载]Android平台第三方应用分享到微信开发
- 微信企业号开发:微信考勤2如何计算距离
- 微信公众账号登陆授权开发——4
- 微信公众账号登陆授权开发——4