У нас есть сайт 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));
}
});
};
....
Дополнительные вопросы:
- Является ли объект, описанный выше, является "корректным" непрозрачным Merchant Session, который должен быть передан в
completeMerchantValidation
или в нем отсутствуют некоторые поля? - Нужно ли передавать этот объект как есть или его нужно кодировать в base64?
- Нужно ли его оборачивать в другой предмет?
Любая помощь или руководство приветствуются.