iOS开发-微信签到机制Sign签名制作
来源:互联网 发布:手机淘宝代购怎么做 编辑:程序博客网 时间:2024/06/17 23:56
微信功能的模块,简化一下完成了微信后台签到机制。剩下的就是网络请求了,这代码简单易懂,已经用最粗俗的码山来完成的了~~哈哈
原始签名Sign
①产生随机数
- (NSString *)acrRandow{ NSString * randow = [[NSStringalloc]init]; int xx =0; for (int x =0 ; x <16; x++) { xx = arc4random() %10; NSString * aa = [NSStringstringWithFormat:@"%d",xx]; randow = [NSStringstringWithFormat:@"%@%@",randow,aa]; } return randow;}
②Sign生成过程
- (NSString *)Sign{ //对比字段参数的大小然后排序 NSArray * array = [[NSArrayalloc]initWithObjects:@"参数1",@"参数2",@"参数3",@"参数4",nil]; NSStringCompareOptions comparisonOptions =NSCaseInsensitiveSearch|NSNumericSearch| NSWidthInsensitiveSearch|NSForcedOrderingSearch; //根据ASCII排序 NSComparator sort = ^(NSString *obj1,NSString *obj2){ NSRange range =NSMakeRange(0,obj1.length); return [obj1compare:obj2options:comparisonOptionsrange:range]; }; NSArray *resultArray2 = [arraysortedArrayUsingComparator:sort]; NSLog(@"字符串数组排序结果%@",resultArray2); //原始数据 NSMutableDictionary * dic = [[NSMutableDictionaryalloc]init]; //idvf NSString *idfv = [[[UIDevicecurrentDevice]identifierForVendor]UUIDString]; [dic setObject:[NSStringstringWithFormat:@"%@",idfv]forKey:@"DeviceId"]; //授权号 [dic setObject:@"123"forKey:@"参数1"]; //POS终端版本号 [dic setObject:@"1.0.0"forKey:@"AppVersion"]; NSString * aa = [[NSStringalloc]init]; //随机字符串 aa = [selfacrRandow]; [dic setObject:aaforKey:@"Nonce"]; //拼接串 key1=value1 NSMutableArray * arraya = [[NSMutableArrayalloc]init]; NSString * Sign = [[NSStringalloc]init]; for (int i =0; i < resultArray2.count; i++) { NSString * Signa = [NSStringstringWithFormat:@"%@=%@",[resultArray2objectAtIndex:i],[dicobjectForKey:[resultArray2objectAtIndex:i]]]; [arraya addObject:Signa]; } // 原始 格式 sign = key1=value1&key2=value2&.... for (int i =0; i < arraya.count; i++) { Sign = [NSStringstringWithFormat:@"%@&%@",Sign,[arrayaobjectAtIndex:i]]; } Sign = [Sign substringFromIndex:1]; NSLog(@"%@",Sign); return Sign; } //把之前得到的Sign用 md5加密 - (NSString *)md5:(NSString *)str { constchar *concat_str = [strUTF8String]; unsignedchar result[CC_MD5_DIGEST_LENGTH]; CC_MD5(concat_str, (unsignedint)strlen(concat_str), result); NSMutableString *hash = [NSMutableStringstring]; for (int i =0; i <16; i++){ [hash appendFormat:@"%02X", result[i]]; } return [hashuppercaseString];}
通过以上步骤就获得了一个加密之后的Sign签名
0 0
- iOS开发-微信签到机制Sign签名制作
- 微信支付生成签名sign
- Android微信支付获取二次签名Sign的方法
- iOS 开发 code sign 代码签名深入剖析
- 微信开发应用签名
- 微信签到系统
- 微信公众平台开发之-签到积分查询功能
- 微信公众平台开发之签到积分查询功能
- 微信平台开发应用的签名
- Android微信开发的应用签名
- 微信开发 url传参数 json 导致 ios 微信分享失败苹果手机sinature签名无效的问题
- iOS签名授权机制
- IOS的签名机制
- iOS app签名机制
- iOS app签名机制
- iOS app签名机制
- ios 微信开发
- 网上下载的ios开源有签名---更改为自己的签名方法-----sign----ios---签名---证书
- 【C/C++学院】0822-类型转换函数与构造转换函数/类的继承/类的继承以及区别/继承静态成员与静态函数//继承实现代码重用/单继承QT案例/多继承简介以及实战/Gpu编程
- 认识UI
- 1分钟学会用java发送邮件
- http的post传送文件原理
- 利用ICA进行图像加密
- iOS开发-微信签到机制Sign签名制作
- Window Handle介绍
- bat快捷命令
- 骨头陷阱,小狗过迷宫题(Problem ID:1010)
- android常用名词收集
- Linux的sed命令
- JSTL fmt 格式化时间
- 【Android自动化测试之Robotium】04. 命令行运行Android Robotium自动化用例或单元测试用例
- 二维码的生成细节和原理