javascript - 将 Javascript 放入 PHP 变量——用于格子

标签 javascript php plaid

我正在尝试通过 Stripe 集成 Plaid。请耐心听我说,因为我对 javascript 不太熟悉。

我想知道如何将 public_token 和 account_ID 放入 PHP 变量中,以便我可以将其包含在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 通过 post 或 get 发出 HTTP 请求。如果这看起来太困难,您可以使用 jQuery.ajax方法(但您需要在 HTML 中包含 jQuery)。然后,您将能够将该请求指向您的 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']

关于javascript - 将 Javascript 放入 PHP 变量——用于格子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41687215/

相关文章:

javascript - 从 JavaScript 中使用 xgettext 提取译者评论(在 Python 模式下)

javascript - 使模糊算法适用于 Canvas 图像数据?

php - MySQL时区困惑

php - Laravel、@lang 和 strtolower()

javascript - 格子网钩未触发

javascript - Plaid 的 LinkTokenCreate 在 node.js 中给出 400 错误

javascript - 如何从nodejs中的外部url检索DOM对象

php - 我怎样才能创建一个重复自身直到找到所有信息的函数?

javascript - 悬停功能