iosios 集成微信支付付怎样重联

iOS微信支付的那些坑 - 简书
iOS微信支付的那些坑
一直以为支付宝的文档写的已经够烂了,后来我才发现我太年轻了,那是因为我还没有遇到微信的文档,简直坑爹。。。&心中一万只草泥马...&
支付业务流程
商户系统和微信支付系统主要交互说明:
步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。
步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【[统一下单API](https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_1)】。
步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay
步骤4:商户APP调起微信支付。api参见本章节【[app端开发步骤说明](https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_5)】
步骤5:商户后台接收支付通知。api参见【[支付结果通知API](https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_7)】
步骤6:商户后台查询支付结果。,api参见【[查询订单API](https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_2)】
Paste_Image.png
1.微信支付现在已经很便捷了,提供了统一下单接口,自己的后台服务器调用该接口,获取prepayId
2.最重要的一步,也是网上现在坑最多的一步,调用统一下单接口后,微信返回格式如下,而这么多数据中,真正对我们有用的只有 预支付订单号prepayId,微信返回的sign没有任何用,我们得根据签名规范重新生成签名(关于这点,上面的流程交互中就有提到),然后将重新生成的签名返回给APP端,用于APP端调用微信支付。(当然重新生成签名的步骤也可以放在APP端来做,不过为了安全考虑,建议放在服务端处理,下面也会给出APP端签名的代码)
调用统一下单接口 微信返回数据
一定要重新生成签名
很多人都遇到这样的问题,参数都处理好调用微信支付,结果进入微信界面后发现只有一个确定按钮,返回后错误码为 -2,造成这个原因的就是因为参数不对,而且大多是都是因为签名 sign 不对,没有进行二次签名,而直接拿微信返回的sign当作参数 , 所以调用微信支付接口时,一定要用 重新签名的sign!!!!
APP端调用支付时,sign不要用调用统一下单接口返回的sign,而要自己重新生成,生成规则见微信提供的签名生成算法
Paste_Image.png
相关代码如下:
APP端打开微信微信支付代码
#pragma mark -
- (void)wechatPay:(WechatOrderModel *)model
//调起微信支付 model 为自己服务器返回的参数
PayReq *req = [[PayReq alloc] init];
req.partnerId = model.
req.prepayId = model.
req.nonceStr = model.
req.timeStamp = model.timestamp.intV
req.package = model.
req.sign = model.//sign 为自己服务器获取到预支付订单号prepayId后,重新生成的签名,当然本地也可以生成签名,签名代码如下
[WXApi sendReq:req];
//日志输出
NSLog(@"微信支付请求参数 =====
appid=%@\npartid=%@\nprepayid=%@\nnoncestr=%@\ntimestamp=%ld\npackage=%@\nsign=%@",model.appid,req.partnerId,req.prepayId,req.nonceStr,(long)req.timeStamp,req.package,req.sign);
APP端重新生成签名(建议放在服务端处理)
#pragma mark -
微信支付本地签名
//创建发起支付时的sign签名
-(NSString *)createMD5SingForPayWithAppID:(NSString *)appid_key partnerid:(NSString *)partnerid_key prepayid:(NSString *)prepayid_key package:(NSString *)package_key noncestr:(NSString *)noncestr_key timestamp:(UInt32)timestamp_key{
NSMutableDictionary *signParams = [NSMutableDictionary dictionary];
[signParams setObject:appid_key forKey:@"appid"];//微信appid 例如wxfb2
[signParams setObject:noncestr_key forKey:@"noncestr"];//随机字符串
[signParams setObject:package_key forKey:@"package"];//扩展字段
参数为 Sign=WXPay
[signParams setObject:partnerid_key forKey:@"partnerid"];//商户账号
[signParams setObject:prepayid_key forKey:@"prepayid"];//此处为统一下单接口返回的预支付订单号
[signParams setObject:[NSString stringWithFormat:@"%u",timestamp_key] forKey:@"timestamp"];//时间戳
NSMutableString *contentString
=[NSMutableString string];
NSArray *keys = [signParams allKeys];
//按字母顺序排序
NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2 options:NSNumericSearch];
//拼接字符串
for (NSString *categoryId in sortedArray) {
![[signParams objectForKey:categoryId] isEqualToString:@""]
&& ![[signParams objectForKey:categoryId] isEqualToString:@"sign"]
&& ![[signParams objectForKey:categoryId] isEqualToString:@"key"]
[contentString appendFormat:@"%@=%@&", categoryId, [signParams objectForKey:categoryId]];
//添加商户密钥key字段
[contentString appendFormat:@"key=%@", @"商户密钥"];
NSString *result = [contentString md5String];//md5加密
MD5 加密方法
@return 加密后字符串
- (NSString *)md5String
if(self == nil || [self length] == 0)
unsigned char digest[CC_MD5_DIGEST_LENGTH],
CC_MD5([self UTF8String], (int)[self lengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);
NSMutableString *ms = [NSMutableString string];
for(i=0;i&CC_MD5_DIGEST_LENGTH;i++)
[ms appendFormat: @"%02x", (int)(digest[i])];
return [ms copy];
至此微信集成结束,坑的地方就是 app端调用微信支付时的签名参数sign一定要重新生成,不要使用统一下单接口返回的sign,切记!!!!
记录点滴,与君共勉。
引言 秋高气爽,天气转凉,正是学习工作做的好时候。(~ ̄▽ ̄)~~(~ ̄▽ ̄)~ 我是个phper最近在写微信支付(APP支付),微信给的官方文档并不是很详细也没有dome之类的代码啥的(对于新手来说比较麻烦),本人是新手以前也没写过支付,踩了好多坑,所以想写篇文章给没写过...
微信支付文档 1.微信支付简介 a)功能简介 b)支付账户 c)支付方式 d)账号测试 2.JS API支付接口 a)支付场景 b)功能交互 c)获取当前微信版本号 d)显示微信安全支付标题 e)JS API支付接口(getBrandWCPayRequest)定义 f)订单...
一、背景介绍 作为一名Android开发,从最初的跌跌撞撞到现在小有所悟,这其中经历过的辛酸苦辣也是一种痛并快乐着的过程。在这一个过程中,不断的在工作中、在网络上向各位前辈朋友学习,一次一次的充实了自己,学到了新东西,解决了新问题,内心甚是感激。同时在这一过程中,也慢慢积累...
自己总结的微信支付宝支付流程和注意点: 准备工作: 需要公司的营业执照,税务信息,等老板的身份证信息等,我记得,用这些材料,去支付宝注册一个商家账户(审核周期大概5个工作日),或者微信的开发者账号(审核周期大概5个工作日,300元费用),微信的话,需要你的app已经上架有了...
银联支付,支付宝支付,微信支付的三大总结,之前也有写过两篇。 微信支付,支付宝支付,银联支付——三大支付总结: http://blog.csdn.net/androidstarjack/article/details/ 支付宝植入总结: android 支付...
1.确定报名的主题,时间 2.信息收集,在5月28号周日晚上6点前完成 朱宇盛 刘明成 任已佳 李鱼 韩曜泽 孔智康 刘锡沐 乔伊请 彭月恒 陈品豪 万严松 刘玉松 付雨辰 朱校锋
我只想走过一座长长的桥 没有起点,没有终点 我抬头望去,不见踪迹 你就是化作江上的风 吹过我的心间,凉而又孤寂 我再次抬头望 星星零零散散的分部在黑暗里的每个角落 月亮似乎划破了天空 安详的生活,安详的度过 我只想,只想 只想与你一起罢了 答案如此之长 还望美丽的姑娘停下你...
19/21 刘宏波 安徽【每日一结构】结构思考力21天思维改善训练营 G:【复习】复习巩固学习效果三要素。 1【问】问答知识点,可引发思考,有助进一步理解记住。 2【引】不确定时,引动大家进一步讨论和思考,印象更深刻。 3【答】当然要有确定的标准答案。 【重要的事情说3点】...
简介HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(Google File System)Google 文件系统(中文,英文)。HDFS有很多特点:**① **保存多个副...增开40余趟成渝、渝万动车 元旦起车站买票可微信支付_新浪四川_新浪网
  12月29日起,成都商报客户端记者从成都局集团公司获悉,为做好2018年元旦节假日旅客运输服务工作,中国铁路成都局集团有限公司在前期基础上,将再加开、重联多趟旅客列车,方便旅客假日出行。其中包括40余趟次成渝、渝万动车组列车。
  据介绍,2018年元旦小长假,成都局集团公司预计发送旅客306万人次,同比增运28.6万人,增幅约10%。期间,长途旅客约为36万人次、同比增运约3.4万人;短途旅客约为270万人次、同比增运25.2万人。假期客流仍然以成都、重庆、贵阳三个省会城市、直辖市辐射周边市县的旅游和探亲流为主。
  在前期公布的运能安排中,铁路部门假期内将加开成都至营山、达州、西昌、巴中,隆昌至攀枝花,重庆至秀山,贵阳至六盘水、昭通等方向的50余趟次普速旅客列车。
  但由于客流需求旺盛,铁路部门从29日起还将增开成渝高铁、渝万高铁等热门线路上运行的40余趟次动车组列车,并对重庆北至万州北、成都东至峨眉山、江油、成都(东)至南充、广安等方向的140余趟次动车组实行重联运行,提高动车组运输能力。除动车运能增加外,铁路部门还将再增加4趟成都至贵阳间、7趟重庆至六盘水间运行的普速旅客列车,方便沿线市民出行。
  同时,成都商报客户端记者还了解到,从日起,四川、重庆、贵州境内的各大火车站售票窗口、自动售(取)票机将开通微信支付业务,旅客出行购票将变得更加智能化、便捷化。
  成都商报客户端记者 尹沁彤
12-28 06:49|分享
12-28 06:46|分享
12-28 06:45|分享
12-28 06:42|分享
12-28 06:37|分享
12-28 06:34|分享
12-28 06:32|分享
12-28 06:27|分享
12-28 06:26|分享
12-28 06:24|分享
新浪地方站增开40余趟成渝、渝万动车 元旦起车站买票可微信支付_【高铁网】_高铁运营
当前位置: >>
日 &nbsp 来源: &nbsp (铁路投稿/媒介发稿请加QQ )
内容提要:记者从成都局集团公司获悉,为做好2018年元旦节假日旅客运输服务工作,中国铁路成都局集团有限公司在前期基础上,将再加开、重联多趟旅客列车,方便旅客假日出行。其中包括40余趟次成渝、渝万动车组列车。...
  12月29日起,成都商报客户端记者从成都局集团公司获悉,为做好2018年元旦节假日旅客运输服务工作,中国铁路成都局集团有限公司在前期基础上,将再加开、重联多趟旅客列车,方便旅客假日出行。其中包括40余趟次成渝、渝万动车组列车。
  据介绍,2018年元旦小长假,成都局集团公司预计发送旅客306万人次,同比增运28.6万人,增幅约10%。期间,长途旅客约为36万人次、同比增运约3.4万人;短途旅客约为270万人次、同比增运25.2万人。假期客流仍然以成都、重庆、贵阳三个省会城市、直辖市辐射周边市县的旅游和探亲流为主。
  在前期公布的运能安排中,铁路部门假期内将加开成都至营山、达州、西昌、巴中,隆昌至攀枝花,重庆至秀山,贵阳至六盘水、昭通等方向的50余趟次普速旅客列车。
  但由于客流需求旺盛,铁路部门从29日起还将增开成渝高铁、渝万高铁等热门线路上运行的40余趟次动车组列车,并对重庆北至万州北、成都东至峨眉山、江油、成都(东)至南充、广安等方向的140余趟次动车组实行重联运行,提高动车组运输能力。除动车运能增加外,铁路部门还将再增加4趟成都至贵阳间、7趟重庆至六盘水间运行的普速旅客列车,方便沿线市民出行。
  同时,成都商报客户端记者还了解到,从日起,四川、重庆、贵州境内的各大火车站售票窗口、自动售(取)票机将开通微信支付业务,旅客出行购票将变得更加智能化、便捷化。
& 目的地:
铁路资讯评论投稿邮箱: ,QQ:
声明:来源如未特别标注“来源:高铁网”,均系转载自官方媒体或其他网站,版权归原创者所有。本站转载旨在使信息更广泛地传播以更好地发挥其价值,但并不代表本站完全认同其观点,请读者独立思考辨别,本站不承担因此文产生的任何责任。若发现站内有不合法律规范或侵权之处请联系我们(),我们将尽快核实处理。另:本站原创内容欢迎转载,但请务必注明来源于高铁网。
高铁城市资讯
高铁线路资讯
??????????继支付宝后 微信支付覆盖铁路售票系统 这些地区的人民有福了继支付宝后 微信支付覆盖铁路售票系统 这些地区的人民有福了霸占世界百家号随着城市的建设发展,越来越多的城市交通设施逐步完善,如今随着中国经济不断加强,越来越多的线路路线也在不断的开通运营,移动支付的方式也让大家购票越来越方便,又一个地区开通移动支付业务。日起,四川、重庆、贵州境内的各大火车站售票窗口、自动售(取)票机将开通微信支付业务,继铁路售票系统支持支付宝之后, 这些地区的售票系统也支持微信支付,两类主流的支付应用产品均全面覆盖。2018年元旦小长假,成都铁路局预计发送旅客306万人次,同比增加28.6万人,增幅约10%。假期客流以成都、重庆、贵阳三个省会城市、直辖市辐射周边市县的旅游和探亲流为主。铁路部门将增开成渝高铁、渝万高铁等热门线路40多趟动车,并对各方向的140多趟动车实行重联运行,提高动车组运力。铁路部门还将增加4趟成都至贵阳、7趟重庆至六盘水的普客列车,满足小长假客流需求,方便市民出行。运力加大、继支付宝后又可以使用微信支付购票,这个元旦,四川、重庆、贵州3省的市民们可以好好的过一个舒心的小长假了。四川、重庆还有贵州的老乡们,你们说呢?欢迎大家评论留言讨论关注家乡 热爱旅行 铁路旅行 没你不行本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。霸占世界百家号最近更新:简介:有些人的出现就是为了让你知道什么叫错过作者最新文章相关文章元旦起,重庆市各火车站售票窗口、自助售票机都能微信支付元旦起,重庆市各火车站售票窗口、自助售票机都能微信支付慢新闻百家号28日,慢新闻-重庆晚报记者从中国铁路成都局集团有限公司了解到,29日起,为了做好2018年元旦节假日旅客运输服务工作,成都局在前期基础上将再加开、重联多趟旅客列车方便旅客假日出行。此外,日开始,重庆境内各大火车站售票窗口、自动售(取)票机将开通微信支付业务。2018年元旦小长假,成都局集团公司预计发送旅客306万人次,同比增运28.6万人,增幅约10%。期间,长途旅客约为36万人次、同比增运约3.4万人,短途旅客约为270万人次、同比增运25.2万人,假期客流仍然以成都、重庆、贵阳三个省会城市、直辖市辐射周边市县的旅游和探亲流为主。铁路部门从29日起将增开成渝高铁、渝万高铁等热门线路上运行的40余趟次动车组列车,并对重庆北至万州北、成都东至峨眉山、江油、成都(东)至南充、广安等方向的140余趟次动车组实行重联运行,提高动车组的运输能力。除了动车运能增加外,铁路部门还将再增加4趟成都至贵阳间、7趟重庆至六盘水间运行的普速旅客列车,方便沿线市民出行。此外,从日起,四川、重庆、贵州境内的各大火车站售票窗口、自动售(取)票机将开通微信支付业务,目前铁路售票系统支持的移动支付平台已经覆盖支付宝、微信两类主流的支付应用产品。慢新闻-重庆晚报记者 柳青本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。慢新闻百家号最近更新:简介:全心关注重庆,深度解读重庆作者最新文章相关文章

我要回帖

更多关于 ios 微信h5支付 的文章

 

随机推荐