ApplePay completeMerchantValidation не удается - PullRequest
1 голос
/ 18 февраля 2020

У нас есть сайт example.com за ssl, который запускает страницу с ApplePay. У нас есть серверная сторона, которая возвращает торговую сессию, которая выглядит следующим образом:

{"epochTimestamp":1581975586106,"expiresAt":1581979186106,"merchantSessionIdentifier":"SSH8E666B0...","nonce":"1239e567","merchantIdentifier":"...8557220BAF491419A...","domainName":"example.com","displayName":"ApplePay","signature":"...20101310f300d06096086480165030402010500308..."}

Мы получаем этот ответ в session.onvalidatemerchant в виде строки и преобразуем его в Json объект и передаем в session.completeMerchantValidation. В результате мы получаем следующую ошибку:

Code: "InvalidAccessError"
Message: "The object does not support the operation or argument"

Мы запускаем следующий код на нашей странице:

.....
session.onvalidatemerchant = (event) => {
        const validationURL = event.validationURL;        
        getApplePaySession(validationURL).then(function (response) {
            try {
                let resp = JSON.parse(response);
                session.completeMerchantValidation(resp);
            } catch (e) {
                console.error(JSON.stringify(e));
            }
        });
    };
....

Дополнительные вопросы:

  1. Является ли объект, описанный выше, является "корректным" непрозрачным Merchant Session, который должен быть передан в completeMerchantValidation или в нем отсутствуют некоторые поля?
  2. Нужно ли передавать этот объект как есть или его нужно кодировать в base64?
  3. Нужно ли его оборачивать в другой предмет?

Любая помощь или руководство приветствуются.

...