Как создать и подписать строку запроса amazon mws - PullRequest
0 голосов
/ 21 июня 2019

Мне нужно создать интеграцию amazon MWS с приложением iOS, проблема в том, что я не могу создать и подписать запрос, пожалуйста, помогите мне, если бы у вас был какой-то пример кода, было бы очень хорошо.

Я пытался просмотреть документацию и создать строку, но там написано, что подпись недействительна

1 Ответ

1 голос
/ 25 июня 2019

Прежде всего, вы должны включить определения Crypto для обработки вашего запроса

#import <CommonCrypto/CommonHMAC.h>

Используя эту функцию, Вы можете переварить Ваш запрос. Ключ является секретным ключом, предоставленным Amazon

NSString *calcSignature(NSString *aString, NSString *key)
{
    const char *cKey  = [key cStringUsingEncoding: NSUTF8StringEncoding];
    const char *cData = [aString cStringUsingEncoding: NSUTF8StringEncoding];

    // Calculate SHA256-signature
    unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];
    CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
    NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC
                                          length:sizeof(cHMAC)];

    // return Base64 encoded
    return [HMAC base64EncodedStringWithOptions:0];
}

Дайджест следующего образца requestString

POST /Feeds/2009-01-01 HTTP/1.1
Content-Type: x-www-form-urlencoded
Host: mws.amazonservices.com
User-Agent: <Your User Agent Header>

AWSAccessKeyId=0PExampleR2
&Action=CancelFeedSubmissions
&FeedSubmissionIdList.Id.1=1058369303
&FeedTypeList.Type.1=_POST_PRODUCT_DATA_
&FeedTypeList.Type.2=_POST_PRODUCT_PRICING_DATA_
&MWSAuthToken=amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE
&Marketplace=ATExampleER
&SellerId=A1ExampleE6
&SignatureMethod=HmacSHA256
&SignatureVersion=2
&Timestamp=2009-02-04T17%3A34%3A14.203Z
&Version=2009-01-01

Теперь вы можете вычислить подпись

 NSString *signatureString = calcSignature(requestString, amazonSecretKey);

Эти подписи прилагаются к запросу, и Вы должны получить результат. Вы можете немного протестировать и контролировать, отправляете ли вы правильную подпись с помощью Amazon Scratchpad.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...