nodejs實現:支付寶訂單查詢

nodejs實現:支付寶訂單查詢;

原生http請求,不使用三方庫;

代碼如下:

const https = require('https');
const crypto = require('crypto');
const querystring = require('querystring');// 支付寶公共參數
const PRIVATE_KEY = "..."; // 替換為你的應用私鑰
const APP_ID = '...'; // 替換為你的應用IDconst CHARSET = 'utf-8';
const FORMAT = 'json';
const SIGN_TYPE = 'RSA2';
const VERSION = '1.0';
const METHOD = 'alipay.trade.query';
const TIMESTAMP = new Date().toISOString().replace(/T/, ' ').substring(0, 19);
const NOTIFY_URL = 'http://your.notify.url'; // 替換為你設置的通知URL,也可不設置// 請求參數
const bizContent = {out_trade_no: '321321', // 商戶訂單號
};// 構建請求參數
const params = {app_id: APP_ID,method: METHOD,format: FORMAT,charset: CHARSET,sign_type: SIGN_TYPE,timestamp: TIMESTAMP,version: VERSION,notify_url: NOTIFY_URL,biz_content: JSON.stringify(bizContent),
};// 生成簽名
const sign = generateSign(params, PRIVATE_KEY);// 添加簽名到請求參數
params.sign = sign;// 發送請求
const options = {hostname: 'openapi.alipay.com',port: 443,path: '/gateway.do?' + querystring.stringify(params),method: 'POST',
};const req = https.request(options, res => {let data = '';res.on('data', chunk => {data += chunk;});res.on('end', () => {console.log(JSON.parse(data));});
});req.end();// 生成簽名函數
function generateSign(params, privateKey) {// 對參數進行排序const sortedParams = Object.keys(params).sort().reduce((obj, key) => ((obj[key] = params[key]), obj), {});// 構建簽名串let str = '';for (const key in sortedParams) {str += `${key}=${sortedParams[key]}&`;}str = str.slice(0, -1);// 簽名const signer = crypto.createSign('RSA-SHA256');signer.update(str);return signer.sign(privateKey, 'base64');
}

執行效果:

可以獲取到訂單號、購買方信息、金額、支付是否成功等詳細信息。

這是nodejs代碼,如果是要部署在非信賴環境中、避免它人拿到代碼,可以用JShaman、JS-Obfuscator、JsJiaMi.online等工具進行JS代碼加密,加密后的代碼效果:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43150.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43150.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43150.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[C++] 輕熟類和對象

類的定義 格式規范 class為定義類的關鍵字,后有類名,類的主體存于{}中;類定義結束時后面的分號不能省略;類體的內容成為類的成員,類中的變量成為成員變量,函數成為方法或成員函數;C兼容C語言的…

微軟 Edge 瀏覽器全解析

微軟 Edge 是微軟推出的一個現代化瀏覽器,繼承了 Internet Explorer(IE)的部分功能,但在速度、安全性和兼容性方面做出了很大改進。下面是對微軟 Edge 瀏覽器的詳細解析,包括其特點、安裝、配置和常見問題的解答。 微軟 Edge 瀏覽器的特點 基于 Chromium 內核 Edge 瀏覽…

SpringBoot配置flyway

背景 目前我們的項目代碼都會交由Git、SVN等版本管理工具進行管理,但是我們的sql腳本,尤其是各類ddl腳本并沒有進行版本的管理(python的web框架Django默認就提供了類似的工具,從一開始就鼓勵開發者通過版本管理的方式進行數據庫的…

C++中的多重繼承和虛繼承:橫向繼承、縱向繼承和聯合繼承;虛繼承

多重繼承 A.橫向多重繼承: B.縱向多重繼承: C.聯合多重繼承: 因為 single 和 waiter 都繼承了一個 worker 組件,因此 SingingWaiter 將包含兩個 worker 組件,那么將派生類對象的地址賦給基類指針將出現二義性 那么如何…

idea http client插件上傳文件,并忽略https證書驗證

上傳文件 ### 傳臨時素材 圖片 POST https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token{{access_token}}&typeimage Content-Type: multipart/form-data; boundary----WebKitFormBoundarywKUX3Xj6aL5Wssnb------WebKitFormBoundarywKUX3Xj6aL5Wssnb Conten…

從Helm到 Operator:Kubernetes應用管理的進化

🧰Helm 的作用 在開始前需要先對 kubernetes Operator 有個簡單的認識。 以為我們在編寫部署一些簡單 Deployment 的時候只需要自己編寫一個 yaml 文件然后 kubectl apply 即可。 apiVersion: apps/v1 kind: Deployment metadata: labels: app: k8s-combat …

去水印小程序源碼修復版-前端后端內置接口+第三方接口

去水印小程序源碼,前端后端,內置接口第三方接口, 修復數據庫賬號密碼錯誤問題,內置接口支持替換第三方接口, 文件挺全的,可以添加流量主代碼,搭建需要準備一臺服務器,備案域名和http…

農牧行業CRM洞察:打造營、銷、服一體化數字營銷平臺

01、行業應用背景 保持企業活力,支撐業務單元協調發展,穩定核心產品競爭力,將成為農牧行業企業數字化、數智化建設的指導方向。 積極發揮數據在生產、流通、消費各個環節的決策支撐,為農牧企業特別是多業態集團型企業&#xff0…

JVM:類的生命周期

文章目錄 一、介紹二、加載階段三、連接階段1、驗證階段2、準備階段3、解析階段 四、初始化階段 一、介紹 類的生命周期描述了一個類加載、連接(驗證、準備和解析)、初始化、使用、卸載的整個過程。 二、加載階段 加載(Loading&#xff09…

全棧業務開發入門——登錄業務接口

業務已上傳則資源 實現登錄業務的前后端聯調,前端點擊登錄按鈕向后端發送一個請求,后端調用接口向前端響應結果 效果如下: 設計環境:springbootmybatisvue3axios 一.前端設計 1.基于vue3腳手架創建項目,搭建項目結構…

LAZYNVIM學習使用筆記

文章目錄 1. 前言VIM的模式快捷鍵參考 1. 前言 習慣使用vscode進行代碼編輯,無意中刷到lazynvim,感覺功能強大,于是下載、安裝,學習使用一下,本篇主要記錄學習使用lazynvim的一些要點,防止遺忘。 持續更新…

帝特(DTECH)USB轉RS485/422串口線在Ubuntu系統中的安裝

因為測試需要,買了一根帝特(DTECH)USB轉RS485/422串口線,今天測試了一下在Ubuntu 22.04系統上的使用。帝特的網站上提供了驅動程序,下載以后發現接口芯片是CP2102,廠商只提供了Linux內核2.6和3.x版本的驅動…

1703:發現它,抓住它

網址如下: OpenJudge - 1703:發現它,抓住它 測,這題差點讓我去世 用了一堆方法來做 后面現學了并查集,用了并查集來做,因為縮短路徑的方法不好,還是超時了 后面換了一種縮短路徑的方法 先上代碼 解法一…

游戲AI的創造思路-技術基礎-情感計算(2)

上一篇我們介紹了情感計算的基本支持,本篇將呈現情感計算在游戲AI中的使用實例~~~ 目錄 7. 情感計算在游戲AI中的運用實例 7.1. RPG游戲中的運用實例 7.1.1. 實例背景 7.1.2. AI情感計算系統 7.1.3. 引導用戶執行任務 7.1.4. 推動游戲劇情發展 7.1.5. 實例效…

用Python玩轉Excel的五大功能!

在日常的數據處理工作中,Excel無疑是一個強大的工具。然而,當數據量較大或需要自動化處理時,Python憑借其強大的庫支持,如pandas和openpyxl,能夠更高效地處理Excel文件。 本文將介紹Python中常用的五種Excel操作**&am…

一個用于在虛擬桌面下跑chrome的docker鏡像

制作了一個用于跑chrome的docker鏡像xvfb-chrome,主要是為了支持能夠通過xvfb或者wayland,給chrome提供一個虛擬的桌面環境。 這個鏡像主要支持: 將chrome --remote-debugging-port映射到docker的host,可以在host直接訪問。支持…

Python辦公自動化:增值稅發票批量識別和核驗

騰訊云免費體驗地址: https://console.cloud.tencent.com/api/explorer?Product=ocr&Version=2018-11-19&Action=VatInvoiceVerifyNew 首先進行識別,這里以python為例子 # -*- coding: utf-8 -*- import jsonfrom tencentcloud.common.common_client import Commo…

【C++航海王:追尋羅杰的編程之路】關聯式容器的底層結構——紅黑樹

目錄 1 -> 紅黑樹 1.1 -> 紅黑樹的概念 1.2 -> 紅黑樹的性質 1.3 -> 紅黑樹節點的定義 1.4 -> 紅黑樹的結構 1.5 -> 紅黑樹的插入操作 1.6 -> 紅黑樹的驗證 1.8 -> 紅黑樹與AVL樹的比較 2 -> 紅黑樹模擬實現STL中的map與set 2.1 -> 紅…

如何理解李彥宏說的“不要卷模型,要卷應用?

背景: 7月4日,2024世界人工智能大會暨人工智能全球治理高級別會議全體會議在上海世博中心舉辦。在產業發展主論壇上,百度創始人、董事長兼首席執行官李彥宏呼吁:“大家不要卷模型,要卷應用!”李彥宏認為&am…

【堆 優先隊列】1354. 多次求和構造目標數組

本文涉及知識點 堆 優先隊列 LeetCode1354. 多次求和構造目標數組 給你一個整數數組 target 。一開始&#xff0c;你有一個數組 A &#xff0c;它的所有元素均為 1 &#xff0c;你可以執行以下操作&#xff1a; 令 x 為你數組里所有元素的和 選擇滿足 0 < i < target.…