Я пытаюсь интегрировать плед через 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
)),
));
Вы захотите взглянуть на использование 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']
Других решений пока нет …