Страница подтверждения PayU не вызывается - PullRequest
0 голосов
/ 12 ноября 2018

РЕДАКТИРОВАТЬ: Используя curl, я обнаружил, что проблема в эхо ... эхо для печати на экране, а не для этого варианта использования ... проблема все еще сохраняется, как я могу вызвать функции javascript для обновления моей базы данных firebase

РЕДАКТИРОВАТЬ 2: Я только что обнаружил, что облачные функции могут подходить для меня, без необходимости устанавливать Firebase Admin SDK.Я уточню ответ, когда узнаю, как использовать облачные функции.Если кто-нибудь может дать мне ответ с облачными функциями для моего сценария, я с радостью выберу его в качестве ответа.

У меня проблема со страницей подтверждения PayU.Это информация, которую они предоставляют на своем веб-сайте для интеграции .

Страница подтверждения позволяет обновить базы данных в вашей системе.Из-за этого он не должен включать HTML-код и никогда не будет виден покупателю.Эта страница не является обязательной.Когда транзакция завершена (то есть, когда она одобрена, отклонена или отменена), наша платформа отправляет переменные с помощью метода HTTP POST.На странице подтверждения вы должны захватить данные, которые вы хотите сохранить в базе данных.Этот захват будет зависеть от используемого языка программирования.

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

<script src="https://www.gstatic.com/firebasejs/5.5.8/firebase.js"></script>
<script>
  // Initialize Firebase
  var config = {
    apiKey: "apikey",
    authDomain: "domain",
    databaseURL: "database",
    projectId: "poject",
    storageBucket: "storage",
    messagingSenderId: "123"
  };
  firebase.initializeApp(config);


  function seachEnsayoIDSSC(identifier){

    var updates = {};
    updates['/recibido/' + identifier ] = 'funciono';

    return firebase.database().ref().update(updates);

        let ref = firebase.database().ref('ensayos').orderByChild('ensayoId');

        ref.equalTo(identifier).on("value", function(snapshot) {
                console.log(snapshot.val());
                snapshot.forEach(function(data) {
                        console.log(data.key);
                });
        });
    }
</script>


<?php

$to = "testing@gmail.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@testing.com";

mail($to,$subject,$txt,$headers);



echo "<script>var updates = {};
    updates['/estoseestaprobandoenpost/estamosmaso' ] = 'funciono';

    firebase.database().ref().update(updates);</script>";

if(isset($_REQUEST['sign'])){
    echo "<script>var updates = {};
    updates['/estoseestaprobandoenpost/estamosmaso' ] = 'funciono';

    firebase.database().ref().update(updates);</script>";

    $confirmationMD = $_REQUEST['sign'];
    $merchantId = $_REQUEST["merchant_id"];
    $state = $_REQUEST["state_pol"];
    $ensayoIDSSC = $_REQUEST["reference_sale"];
    $currency = $_REQUEST["currency"];
    $valor = $_REQUEST["value"];

    updateEnsayo();
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    echo "<script>var updates = {};
    updates['/estoseestaprobandoenpost/estamosmaso' ] = 'funciono';

    firebase.database().ref().update(updates);</script>";

    $merchantId = $_POST["merchant_id"];
    $state = $_POST["state_pol"];
    $ensayoIDSSC = $_POST["reference_sale"];
    $currency = $_POST["currency"];
    $valor = $_POST["value"];
    $confirmationMD = $_POST["sign"];

    updateEnsayo();
}

function updateEnsayo(){
    echo "<script>seachEnsayoIDSSC(". $ensayoIDSSC .")</script>";
}
?>

Это форма, которую PayU получает для захвата платежа (ПРИМЕР)

<form method="post" action="https://sandbox.checkout.payulatam.com/ppp-web-gateway-payu/">
  <input name="merchantId"    type="hidden"  value="508029"   >
  <input name="accountId"     type="hidden"  value="512321" >
  <input name="description"   type="hidden"  value="Test PAYU"  >
  <input name="referenceCode" type="hidden"  value="TestPayU" >
  <input name="amount"        type="hidden"  value="20000"   >
  <input name="tax"           type="hidden"  value="3193"  >
  <input name="taxReturnBase" type="hidden"  value="16806" >
  <input name="currency"      type="hidden"  value="COP" >
  <input name="signature"     type="hidden"  value="7ee7cf808ce6a39b17481c54f2c57acc"  >
  <input name="test"          type="hidden"  value="1" >
  <input name="buyerEmail"    type="hidden"  value="test@test.com" >
  <input name="responseUrl"    type="hidden"  value="http://www.test.com/response" >
  <input name="confirmationUrl"    type="hidden"  value="http://www.test.com/confirmation" >
  <input name="Submit"        type="submit"  value="Enviar" >
</form>

Во входе 'validUrl' я установил свой URL с помощьюкод, упомянутый ранее.Проблема здесь заключается в том, что по неизвестным причинам я не получаю никаких обновлений в моей базе данных Firebase и даже по электронной почте из почтового кода.На самом деле, я использую свою собственную электронную почту, а не ту, что в коде, и я проверил URL с почтовым запросом, даже без почтового запроса, чтобы проверить, работает ли он, и это было .. Пожалуйста, помогите!Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...