session.completeMerchantValidation возвращает ошибку в ApplePay js - PullRequest
0 голосов
/ 06 января 2020

Мы пытаемся внедрить 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();

      });
    }  
...