trước hết mình làm hoàn toàn thuần để cho ae newbie cũng hiểu rõ và thằng nào bảo code như lòn thì kệ mẹ bạn vì mình làm cùi nhất và dễ hiểu cho newbie dễ hiểu nhất luôn nhé
hí anh em nay mới mò mất hơn tiếng thì hệ thống API của Tpbank đó là Authentication Token , còn gọi là JSON Web Token
Authentication là gì : Đây là kịch bản phổ biến nhất cho việc sử dụng JWT. Một khi người dùng đã đăng nhập vào hệ thống thì những request tiếp theo từ phía người dùng sẽ chứa thêm mã JWT, cho phép người dùng quyền truy cập vào các đường dẫn, dịch vụ, và tài nguyên mà cần phải có sự cho phép nếu có mã Token đó. Phương pháp này không bị ảnh hưởng bởi Cross-Origin Resource Sharing (CORS) do nó không sử dụng cookie.

Hình ảnh lịch sử khi get

Còn Đây Là Code
Get Token
function get_token($username,$password){
$url = "https://ebank.tpb.vn/gateway/api/auth/login";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"DEVICE_ID: LYjkjqGZ3HhGP5520GxPP2j94RDMC7Xje77MI7".rand(10000000.999999999999),
"PLATFORM_VERSION: 91",
"DEVICE_NAME: Chrome",
"SOURCE_APP: HYDRO",
"Authorization: Bearer",
"Content-Type: application/json",
"Accept: application/json, text/plain, */*",
"Referer: https://ebank.tpb.vn/retail/vX/login?returnUrl=%2Fmain",
"sec-ch-ua-mobile: ?0",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36",
"PLATFORM_NAME: WEB",
"APP_VERSION: 1.3",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = '{"username":"'.$username.'","password":"'.$password.'"}';
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
curl_close($curl);
return $resp;
}
Kết Quả
Các bạn decode ra để lấy access_token nhé

Get History
$ngay_bat_dau_check = '20210627';
$ngay_ket_thuc_check = '20210727';
function get_history($token,$stk_tpbank){
$url = "https://ebank.tpb.vn/gateway/api/smart-search-presentation-service/v1/account-transactions/find";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"Connection: keep-alive",
"DEVICE_ID: LYjkjqGZ3HhGP5520GxPP2j94RDMC7Xje77MI7".rand(10000000.999999999999),
"PLATFORM_VERSION: 91",
"DEVICE_NAME: Chrome",
"SOURCE_APP: HYDRO",
"Authorization: Bearer ".$token,
"XSRF-TOKEN=3229191c-b7ce-4772-ab93-55a".rand(10000000.999999999999),
"Content-Type: application/json",
"Accept: application/json, text/plain, */*",
"sec-ch-ua-mobile: ?0",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36",
"PLATFORM_NAME: WEB",
"APP_VERSION: 1.3",
"Origin: https://ebank.tpb.vn",
"Sec-Fetch-Site: same-origin",
"Sec-Fetch-Mode: cors",
"Sec-Fetch-Dest: empty",
"Referer: https://ebank.tpb.vn/retail/vX/main/inquiry/account/transaction?id=".$stk_tpbank,
"Accept-Language: vi-VN,vi;q=0.9,fr-FR;q=0.8,fr;q=0.7,en-US;q=0.6,en;q=0.5",
"Cookie: _ga=GA1.2.1679888794.1623516".rand(10000000.999999999999)."; _gid=GA1.2.580582711.162".rand(10000000.999999999999)."; _gcl_au=1.1.756417552.162".rand(10000000.999999999999)."; Authorization=".$token,
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = '{"accountNo":"'.$stk_tpbank.'","currency":"VND","fromDate":"'.$ngay_bat_dau_check.'","toDate":"'.$ngay_ket_thuc_check.'","keyword":""}';
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
curl_close($curl);
return $resp;
}
Hình ảnh sau khi get history

Quan trọng
khi get chu ý trong transactionInfos có creditDebitIndicator Nếu nó là CRDT là cộng tiền , nếu là DBIT là trừ tiền