NSMutableArray* array = @[ [NSString stringWithFormat:@"AWSAccessKeyId=%@", self.credentials[@"AWSAccessKeyId"]],
[NSString stringWithFormat:@"AssociateTag=%@", self.credentials[@"AssociateTag"]],
@"Availability=Available",
[NSString stringWithFormat:@"Keywords=%@", [string urlencode]],
@"Operation=ItemSearch",
@"ResponseGroup=Medium",
// [NSString stringWithFormat:@"SearchIndex=%@", category],
@"SearchIndex=All",
@"Service=AWSECommerceService-Y",
[NSString stringWithFormat:@"Timestamp=%@", [[DateHelper UTFStringFromDate:[NSDate date]] urlencode]]
].mutableCopy;
if (page != 0) {
[array insertObject:[NSString stringWithFormat:@"ItemPage=%ld", page] atIndex:3];
}
[array addObject:[NSString stringWithFormat:@"Signature=%@", [self _getSignatureFromParams:array]]];
...
- (NSString*)_getSignatureFromParams:(NSArray*)params
{
NSString* paramsString = [params componentsJoinedByString:@"&"];
NSString* string = [NSString stringWithFormat:@"GET\nwebservices.amazon.com\n/onca/xml\n%@", paramsString];
NSData *keyData = // AWSSecretKey"
NSData *paramData = [string dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData* hash = [NSMutableData dataWithLength:CC_SHA256_DIGEST_LENGTH ];
CCHmac(kCCHmacAlgSHA256, keyData.bytes, keyData.length, paramData.bytes, paramData.length, hash.mutableBytes);
return [[hash base64EncodedStringWithOptions:0] urlencode];
}
No hay comentarios:
Publicar un comentario