##iOS中的微信支付 支付验证签名失败

iOS中的微信支付 支付验证签名失败

今天要在项目中添加微信支付,iOS端的所有东西都已经按照文档搞好了,可就是跳转到微信的时候显示“支付验证签名失败”,可是安卓端的都没有问题,就很郁闷了。
后来在对文档的时候发现。。。

##iOS中的微信支付 支付验证签名失败_第1张图片

666  时间戳十位啊。。。
可是后台返回的timestamp确实13位的。。。怒找后台改了
立刻OK了。。。所以说咱们一定要协调好,仔细查对文档,毕竟用的是人家的东西
数字时间戳与时间的相互抓换
注意:由于Java比PHP的时间精确,所以,后台数据的时间java是13位的,而php是10位的,iOS时间抓换只支持10位数的,所以如果java写后台的话,把数字/1000就行了.具体做法如下:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];  
formatter.dateFormat = @"YYYY-MM-dd HH:mm:ss";  
NSDate *date = [[NSDate alloc] init];  
SString *datestr = [formatter stringFromDate:date];  
NSLog(@"%@",datestr);  
// 时间转化为数字时间戳  
/* 
- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate; 
 @property (readonly) NSTimeInterval timeIntervalSinceNow; 
 @property (readonly) NSTimeInterval timeIntervalSince1970; 
 */  
NSInteger numtime = date.timeIntervalSince1970;  
NSString *numtimestr = [NSString stringWithFormat:@"%ld",numtime];  
NSLog(@"%@",numtimestr);  
// 数字时间转化为时间戳,如果为13位,除以1000,或者去掉后3位即可  
NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:numtime];  
NSString *datestr2 = [formatter stringFromDate:date2];  
NSLog(@"%@",datestr2);  

你可能感兴趣的:(微信支付)