HEX
Server: nginx/1.24.0
System: Linux prod-btpayments-io 6.14.0-1018-aws #18~24.04.1-Ubuntu SMP Mon Nov 24 19:46:27 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.3.19
Disabled: NONE
Upload Files
File: /var/www/BtMiners/BtMiners-store/echeck.php
<?php
header("Access-Control-Allow-Origin:*");
$plaidUrl = "https://sandbox.plaid.com/link/token/create";
$headerSend = [
    'Content-Type:application/json',
];
$data = [
    'client_id'=>'62f1db4997d5700014286c39',
//    'secret'=>'b1db2d4ebddcdc541f81e9c2efd852',
    'secret'=>'06fd59a17500534a92c73b0b49d3b7',
    'client_name'=>'Lizheng Stainless Steel Tube and Coil Corp',
    'language'=>'en',
    "country_codes"=>["US"],
    "user"=>[
        "client_user_id"=>"kechen tang"
    ],
    "products"=>["auth"],
//    "redirect_uri"=>"https://app-api-dev.rc-miners.com/oauth.html",
    "redirect_uri"=>"https://wordprocess-dev.rc-miners.com/plaid.html",
];
$res = sendRequest($plaidUrl, json_encode($data),"POST",$headerSend);
echo $res["msg"];exit;
//print_r($res);exit;

function sendRequest($url, $params = [], $method = 'POST', $header = [], $options = [])
{
    $method       = strtoupper($method);
    $protocol     = substr($url, 0, 5);
    $query_string = is_array($params) ? http_build_query($params) : $params;

    $ch       = curl_init();
    $defaults = [];
    if ('GET' == $method) {
        $geturl                = $query_string ? $url . (stripos($url, '?') !== false ? '&' : '?') . $query_string : $url;
        $defaults[CURLOPT_URL] = $geturl;
    } else {
        $defaults[CURLOPT_URL] = $url;
        if ($method == 'POST') {
            $defaults[CURLOPT_POST] = 1;
        } else {
            $defaults[CURLOPT_CUSTOMREQUEST] = $method;
        }
        $defaults[CURLOPT_POSTFIELDS] = $params;
    }

    $defaults[CURLOPT_HEADER]         = false;
    $defaults[CURLOPT_USERAGENT]      = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.98 Safari/537.36';
    $defaults[CURLOPT_FOLLOWLOCATION] = true;
    $defaults[CURLOPT_RETURNTRANSFER] = true;
    $defaults[CURLOPT_CONNECTTIMEOUT] = 3;
    $defaults[CURLOPT_TIMEOUT]        = 3;

    // disable 100-continue
    if(!empty($header)){
        //curl_setopt($ch, CURLINFO_HEADER_OUT, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    }else{
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
    }

    if ('https' == $protocol) {
        $defaults[CURLOPT_SSL_VERIFYPEER] = false;
        $defaults[CURLOPT_SSL_VERIFYHOST] = false;
    }

    curl_setopt_array($ch, (array)$options + $defaults);

    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);


    $ret = curl_exec($ch);
    $err = curl_error($ch);
    //echo curl_getinfo($ch, CURLINFO_HEADER_OUT);

    if (false === $ret || !empty($err)) {
        $errno = curl_errno($ch);
        $info  = curl_getinfo($ch);
        curl_close($ch);
        return [
            'ret'   => false,
            'errno' => $errno,
            'msg'   => $err,
            'info'  => $info,
        ];
    }
    curl_close($ch);
    return [
        'ret' => true,
        'msg' => $ret,
    ];
}