Мы пытаемся внедрить Apple Pay в Интернете в нашем проекте. При попытке реализовать Apple Pay, session.completeMerchantValidation возвращает ошибку InvalidAccessError: объект не поддерживает операцию или аргумент . Ниже приведен фрагмент кода моего кода. Я передаю объект в session.completeMerchantValidation (как упоминалось в других статьях stackoverflow), но все еще получаю сообщение об ошибке. Имя домена в объекте merchantSession также совпадает с именем хоста в URL запроса. Не уверен, в чем здесь проблема. Любая помощь, чтобы исправить эту ошибку высоко ценится
session.onvalidatemerchant = (event) => {
var promise = validateMerchant2(event.validationURL);
promise.then(function (merchantSession) {
try{
session.completeMerchantValidation(merchantSession);
}
catch(err){alert("error while completing merchant validation : "+err);}
});
};
function validateMerchant2(url) {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
var sessionURL='/getAppleSession2?url='+url;
alert('sessionURL is'+sessionURL);
xhr.open('GET',sessionURL);
xhr.onload = function () {
alert("status " + this.status);
if (this.status >= 200 && this.status < 300) {
alert('xhr.response is : '+typeof(xhr.response)+': '+JSON.stringify(xhr.response));
try{
resolve(JSON.parse(xhr.response));
}
catch(e){
alert('Error while doing JSON parse on xhr.response'+e);
}
} else {
alert('in reject of validateMerchant2 '+this.status+' ' +xhr.statusText);
reject({
status: this.status,
statusText: xhr.statusText
});
}
};
xhr.onerror = function () {
reject({
status: this.status,
statusText: xhr.statusText
});
};
xhr.send();
});
}