javascript - 在 laravel 6 中,从 JS 中获取值并将它们传递给控制器并将其保存到数据库?
问题描述
我的问题是关于我目前有一些从 epayco 带来的数据。数据正确到达,但在 js 中,我需要相同的数据才能在 php 中使用它,以便在加载窗口时显示这些数据时将其保存在数据库中。有谁能够帮我?
这是到目前为止的代码:
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<title>Respuesta de la Transacción</title>
</head>
<body>
<div class="container">
<div class="row justify-content-center">
<div class="col-8 pt-5 pb-5">
<h2 class="text-center">Respuesta de la Transacción </h2>
<hr>
<!--Table-->
<div class="table-responsive">
<table class="table table-bordered">
<tbody>
<tr>
<td>Id usuario</td>
<td id="id_usuario"></td>
</tr>
<tr>
<td>Id promocion</td>
<td id="id_promocion"></td>
</tr>
<tr>
<td>Referencia</td>
<td id="referencia"></td>
</tr>
<tr>
<td class="bold">Fecha</td>
<td id="fecha" class=""></td>
</tr>
<tr>
<td>Respuesta</td>
<td id="respuesta"></td>
</tr>
<tr>
<td>Motivo</td>
<td id="motivo"></td>
</tr>
<tr>
<td class="bold">Banco</td>
<td class="" id="banco">
</tr>
<tr>
<td class="bold">Recibo</td>
<td id="recibo"></td>
</tr>
<tr>
<td class="bold">Total</td>
<td class="" id="total">
</td>
</tr>
</tbody>
</table>
</div>
<!--/Table-->
<a class="btn btn-success btn-block mb-5" href="/" role="button">Regresar a la pagina de inicio de Vitur</a>
<div class="row">
<div class="col-8">
<img src="https://369969691f476073508a-60bf0867add971908d4f26a64519c2aa.ssl.cf5.rackcdn.com/btns/epayco/pagos_procesados_por_epayco_260px.png" class="img-fluid">
</div>
<div class="col-4">
<img src="https://369969691f476073508a-60bf0867add971908d4f26a64519c2aa.ssl.cf5.rackcdn.com/btns/epayco/credibancologo.png"
height="40px" class="img-fluid">
</div>
</div>
</div>
</div>
</div>
<!--jQuery-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js"></script>
<script>
function getQueryParam(param) {
location.search.substr(1)
.split("&")
.some(function(item) { // returns first occurence and stops
return item.split("=")[0] == param && (param = item.split("=")[1])
})
return param
}
$(document).ready(function() {
//llave publica del comercio
//Referencia de payco que viene por url
var ref_payco = getQueryParam('ref_payco');
//Url Rest Metodo get, se pasa la llave y la ref_payco como paremetro
var urlapp = "https://secure.epayco.co/validation/v1/reference/" + ref_payco;
$.get(urlapp, function(response) {
if (response.success) {
if (response.data.x_cod_response == 1) {
//Codigo personalizado
alert("Transaccion Aprobada");
console.log('transacción aceptada');
}
//Transaccion Rechazada
if (response.data.x_cod_response == 2) {
console.log('transacción rechazada');
}
//Transaccion Pendiente
if (response.data.x_cod_response == 3) {
console.log('transacción pendiente');
}
//Transaccion Fallida
if (response.data.x_cod_response == 4) {
console.log('transacción fallida');
}
$('#id_usuario').html(response.data.x_extra1);
$('#id_promocion').html(response.data.x_extra2);
$('#fecha').html(response.data.x_transaction_date);
$('#respuesta').html(response.data.x_response);
$('#referencia').text(response.data.x_id_invoice);
$('#motivo').text(response.data.x_response_reason_text);
$('#recibo').text(response.data.x_transaction_id);
$('#banco').text(response.data.x_bank_name);
$('#autorizacion').text(response.data.x_approval_code);
$('#total').text(response.data.x_amount + ' ' + response.data.x_currency_code);
} else {
alert("Error consultando la información");
}
});
});
</script>
<!--php-->
@php/*
$buy= new App\Buy;
$buy->user_id = $_REQUEST['id_usuario'];
$buy->promo_id = $_REQUEST['id_promocion'];
$buy->save();
@endphp
</body>
</html>
解决方案
您可以在 laravel 应用程序中创建一个端点,并在 epayco 中获取数据后执行 ajax 请求
$(document).ready(function() {
//llave publica del comercio
//Referencia de payco que viene por url
var ref_payco = getQueryParam('ref_payco');
//Url Rest Metodo get, se pasa la llave y la ref_payco como paremetro
var urlapp = "https://secure.epayco.co/validation/v1/reference/" + ref_payco;
$.get(urlapp, function(response) {
if (response.success) {
$.post( "your/endpoint", response.data );
}
});
/////
///
//
推荐阅读
- xbox - 如何通过 Microsoft 进行身份验证并检索游戏成就?
- css - 如何使用css突出显示选定的文本?
- wpf - WPF 样式中的数据触发器:更改内容不起作用
- python - 使用 Peewee 选择()数据的最快和最节省内存的方法?
- html - 跨度标记中的 HTML 图像在底部对齐
- javascript - rxjs Observable 合并没有按预期工作
- xamarin - Debug.WriteLine(ex); 是否有任何性能损失?当我的应用程序发布版本时声明
- swift - 将 NSTableView 保存为 PDF 时如何包含表头
- c# - ProjectionManager.StartProjectingAsync - 引发拒绝访问异常
- libgdx - Drawable 接口的 setMinWidth() 方法有什么用?