"404: Неверный URI - нет содержимого" при проверке продавца Apple Pay

На сервере node.js я получил URL проверки от клиента, а затем отправил запрос на этот URL:

const { validationURL } = req.body;
const cert = fs.readFileSync(certPath);
const key = fs.readFileSync(keyPath);
const options = {
  url: `${validationURL}/paymentSession`,
  method: 'POST', 
  "headers": {
    "Content-Type": "application/json",
  },
  key,
  cert,
  body:{
    merchantIdentifier: 'merchant.domain.name', // from developer panel
    displayName: 'ProjectName',
    initiative: 'web',
    initiativeContext: 'domain.name', // verified from developer panel
  },
  json: true,
};

request.post(options, function (error, response, body) {
  console.log('inner error:', error); 
  console.log('inner statusCode:', response && response.statusCode); 
  console.log('inner body:', body); 
}).on('error', function(err) {
  console.log(err)
});

И я продолжаю получать

внутренняя ошибка: null inner statusCode: 404 внутреннее тело: неверный URI - нет содержимого

Что может пойти не так? Речь идет о URL или полезной нагрузке тела?

Я формирую URL в соответствии с https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/requesting_an_apple_pay_payment_session

Конечная точка: https: // {URL-адрес проверки} / paymentSession Для Apple Pay в Интернете используйте полный URL-адрес проверки, полученный в onvalidatemerchant.

Запрос выглядит следующим образом:

{ uri: 'https://apple-pay-gateway-pr-pod3.apple.com/paymentservices/startSession/paymentSession',
  method: 'POST',
  key: <Buffer 2d 2d 2d 2d 2d 42 45 47 49 4e 20 50 52 49 56 41 54 45 20 4b 45 59 2d 2d 2d 2d 2d 0a 4d 49 49 45 76 51 49 42 41 44 41 4e 42 67 6b 71 68 6b 69 47 39 77 ... >,
  cert: <Buffer 2d 2d 2d 2d 2d 42 45 47 49 4e 20 43 45 52 54 49 46 49 43 41 54 45 2d 2d 2d 2d 2d 0a 4d 49 49 47 4d 44 43 43 42 52 69 67 41 77 49 42 41 67 49 49 51 6c ... >,
  body:
   { merchantIdentifier: 'merchant.domain.name',
     displayName: 'ProjectName',
     initiative: 'web',
     initiativeContext: 'domain.name' },
  json: true }

Есть идеи?

Со всеми наилучшими пожеланиями.

0 ответов

Другие вопросы по тегам