Не получен ответ HTTP-запроса - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь получить ответ из php-файла, но ничего не получаю.

Это функция http, которую я написал для чтения данных. URL реальный и рабочий, при необходимости его можно проверить.

exports.generate_cheksum = function () {
    console.log("generate_cheksum");

    const httpModule = require("http");
    httpModule.request({
        url: "http://tvastru.byethost7.com/paytm/generate_cheksum.php",
        method: "POST",
        headers: { "Content-Type": "application/json" },
        content: JSON.stringify({
        })
    }).then((response) => {
        console.log(response); //[object Object]
    }, (e) => {
        console.log("----error");
        console.log(e);
    });
}
<?php

    require_once("encdec_paytm.php");

    define("merchantMid", "V********************3");
    // Key in your staging and production MID available in your dashboard
    define("merchantKey", "0***************R");

    // Key in your staging and production merchant key available in your dashboard
    define("orderId", "order1");
    define("channelId", "WEB");
    define("custId", "cust123");
    define("mobileNo", "7777777777");
    define("email", "username@emailprovider.com");
    define("txnAmount", "100.12");
    define("website", "WEBSTAGING");
    // This is the staging value. Production value is available in your dashboard
    define("industryTypeId", "Retail");
    // This is the staging value. Production value is available in your dashboard
    define("callbackUrl", "https://<Merchant_Response_URL>");
    $paytmParams = array();
    $paytmParams["MID"] = merchantMid;
    $paytmParams["ORDER_ID"] = orderId;
    $paytmParams["CUST_ID"] = custId;
    $paytmParams["MOBILE_NO"] = mobileNo;
    $paytmParams["EMAIL"] = email;
    $paytmParams["CHANNEL_ID"] = channelId;
    $paytmParams["TXN_AMOUNT"] = txnAmount;
    $paytmParams["WEBSITE"] = website;
    $paytmParams["INDUSTRY_TYPE_ID"] = industryTypeId;
    $paytmParams["CALLBACK_URL"] = callbackUrl;
    $paytmChecksum = getChecksumFromArray($paytmParams, merchantKey);
    $transactionURL = "https://securegw-stage.paytm.in/theia/processTransaction";
    // $transactionURL = "https://securegw.paytm.in/theia/processTransaction"; // for    production

    echo json_encode($paytmChecksum);
?>

PHP-файл работал нормально, который я протестировал. Я просто хочу, чтобы контрольная сумма генерировалась как ответ.

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Основная проблема заключается в том, что в Byet Host реализован простой модуль защиты от роботов> с именем testcookie-nginx-module https://kyprizel.github.io/testcookie-nginx-module/

Скорее всего, это плагин защиты ботов на вашем сервере.Если у вас есть контроль над плагинами вашего сервера, вы должны отключить / удалить его.Если это также бесплатный хостер, вы, вероятно, не сможете его отключить.В этом случае этот хостер для вас бесполезен, и вы должны искать нового хостера.

Я проверил ваш код на моем сервере с моими данными о платеже.работает нормально

1 голос
/ 19 июня 2019

Пара вещей, которые вам нужно сделать

  1. Укажите правильный URL.(http://tvastru.byethost7.com/paytm/generate_checksum.php)
  2. Вы должны явно установить cleartextTrafficPermitted (android: usedCleartextTraffic = "true") в своем файле Android.manifest.
  3. // Свойство содержимого ответа - HttpContent // ToStringМетод позволяет вам получить тело ответа в виде строки. .then((response) => {console.log(response); //[object Object]}
  4. Когда ваш php-код вызывается из приложения, он возвращает This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support Это, вероятно, не имеет никакого отношения к вашему коду, проверьте службу хостинга..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...