Поместите переменную Javascript в PHP — для Plaid

Я пытаюсь интегрировать плед через Stripe. Терпите меня, поскольку я не очень знаком с JavaScript.

Я хочу знать, как я могу поместить в переменную PHP public_token и account_ID, чтобы я мог включить их в вызов curl.

JS

<button id='linkButton'>Open Plaid Link</button>
<script src="https://cdn.plaid.com/link/stable/link-initialize.js"></script>
<script>
var linkHandler = Plaid.create({
env: 'tartan',
clientName: 'Stripe / Plaid Test',
key: '[Plaid key]',
product: 'auth',
selectAccount: true,
onSuccess: function(public_token, metadata) {
// Send the public_token and account ID to your app server.
console.log('public_token: ' + public_token);  // HOW DO I PLACE THIS IN PHP/curl?**
console.log('account ID: ' + metadata.account_id); // HOW DO I PLACE THIS IN PHP/curl?**
},
});

PHP / CURL

$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => 'https://tartan.plaid.com/exchange_token',
CURLOPT_POST => true,
CURLOPT_HTTPHEADER, array(
'Content-Type: application/x-www-form-urlencoded',
),
CURLOPT_POSTFIELDS => http_build_query(array(
'client_id' => '[Plaid client ID]',
'secret' => '[Plaid secret]',
'public_token' => '[Plaid Link public_token]', // HOW DO I CREATE A VARIABLE FROM THE ABOVE JS ( console.log('public_token: ' + public_token);) to place here**
'account_id' => '[Plaid Link account_id]', // HOW DO I CREATE A VARIABLE FROM THE ABOVE JS ( console.log('public_token: ' + public_token);) to place here
)),
));

0

Решение

Вы захотите взглянуть на использование XMLHTTP, также известный как AJAX. Это позволяет Javascript делать HTTP-запросы с post или get. Если это выглядит слишком сложно, вы можете использовать jQuery.ajax метод (но вы должны включить JQuery в ваш HTML). После этого вы сможете указать запрос на своей странице PHP, на которой вы делаете запрос cURL, и получать значения через _POST или _GET.

Примеры согласно ниже:

XMLHTTP ЗАПРОС

var url = 'curl.php?token='+public_token+'&acctid='+metadata.account_id;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(xmlhttp.responseText);
}
};
xhttp.open("GET", url, true);
xhttp.send();

JQUERY.AJAX

Предполагая, что jQuery включен и jQuery.noConflict () не был вызван.

$.ajax({
method: "GET",
url: "curl.php",
data: {
token: public_token,
acctid: metadata.account_id
}
}).done(function( msg ) {
console.log( msg );
});

Оба приведенных выше примера являются только теоретическими и непроверенными, хотя я считаю, что они должны работать. Отсюда вы сможете получить переменные в вашем PHP следующим образом:

'public_token' => $_GET['token'],
'account_id' => $_GET['acctid']
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]