0

我正在尝试通过 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/卷曲

$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
    )),
));
4

1 回答 1

1

您将希望了解如何使用XMLHTTP,也称为 AJAX。这允许 Javascript 使用 post 或 get 发出 HTTP 请求。如果这看起来太难了,您可以使用jQuery.ajax方法(但您需要在 HTML 中包含 jQuery)。然后,您将能够将请求指向您发出 cURL 请求的 PHP 页面,并通过 _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']
于 2017-01-17T00:49:23.677 回答