视频一区二区三区自拍_千金肉奴隷1985未删减版在线观看_国产成人黄色视频在线播放_少女免费播放片高清在线观看_国产精品v欧美精品v

Postman調(diào)試工具

更新時(shí)間:2023.07.25

微信支付 APIv3 的 Postman (opens new window) 請(qǐng)求前置腳本(Pre-Request Script (opens new window))。

為了幫助商戶開(kāi)發(fā)者快速上手,我們提供了 Postman 云工作臺(tái) APIv3 Public Workspace (opens new window)。你不用手動(dòng)導(dǎo)入腳本,只需要將集合《微信支付 APIv3 (opens new window)》 fork 到自己的工作臺(tái),就可以在 Postman 上輕松地構(gòu)造并發(fā)送微信支付 APIv3 請(qǐng)求了。

Postman簽名腳本獲取:Postman調(diào)試工具 (opens new window)

# 前置條件

# 快速開(kāi)始

步驟1: Fork 方式導(dǎo)入腳本

點(diǎn)擊按鈕 Run in Postman (opens new window) 進(jìn)入向?qū)В缦聢D所示。

圖片

點(diǎn)擊 Fork Collection 進(jìn)入下一步,填入標(biāo)簽 Fork Label 并選擇目的工作臺(tái) Workspace。一般情況下,導(dǎo)入個(gè)人工作臺(tái) My Workspace 即可。

圖片

點(diǎn)擊 Fork Collection 完成導(dǎo)入。在你指定的 workspace 中可以看到《微信支付 APIv3》了。

圖片

你也可以 本地導(dǎo)入腳本。

步驟2: 配置 Environment

環(huán)境(Environment) (opens new window) 是一組變量 (Varibles) 的集合。 腳本從環(huán)境中讀取變量,用來(lái)計(jì)算請(qǐng)求的簽名。

你可以從《微信支付 APIv3》提供的 商戶參數(shù)模版 (opens new window) 中 fork 一個(gè)空環(huán)境到自己的工作臺(tái)。

圖片

接下來(lái),在你工作臺(tái)的 Enviroments 中找到新建的環(huán)境,點(diǎn)擊 Add a new varialbe 添加新的變量:

  • mchid:必填,商戶號(hào)。
  • merchant_serial_no:必填,商戶 API 證書(shū)序列號(hào)。
  • apiclient_key.pem:必填,PEM 格式的商戶 API 私鑰。

注意: 為了安全,請(qǐng)仔細(xì)閱讀安全注意事項(xiàng)。

一組常見(jiàn)配置如下圖所示。

圖片

步驟3: 發(fā)送請(qǐng)求

我們建議,使用桌面版 Postman App 發(fā)送請(qǐng)求,速度更快,體驗(yàn)更好!

現(xiàn)在回到工作臺(tái),進(jìn)入《微信支付 APIv3》集合,選擇你要發(fā)送的請(qǐng)求。

然后,填入請(qǐng)求參數(shù),按照注釋修改 Body 中的參數(shù)。最后,選擇你之前配置的 Environment,再點(diǎn)擊地址欄右側(cè)的Send按鈕,發(fā)送請(qǐng)求吧。

圖片

# 實(shí)現(xiàn)原理

Pre-Request Script 是一段 Javascript 腳本。Postman 在請(qǐng)求發(fā)送之前,執(zhí)行這段腳本。腳本做了以下操作:

  1. 加載依賴庫(kù)
  2. 讀取 Environment 中的商戶參數(shù)變量
  3. 根據(jù)請(qǐng)求的方法、URL、參數(shù)、Body 等信息,構(gòu)造簽名串,并計(jì)算請(qǐng)求簽名
  4. 設(shè)置請(qǐng)求頭 Authorization

注意:有關(guān) Postman 腳本的更多信息,請(qǐng)參考 Scripting in Postman (opens new window)

# 參數(shù)變量

變量名 是否必填 描述 備注
mchid 商戶號(hào) /
merchant_serial_no 商戶 API 證書(shū)的證書(shū)序列號(hào) /
apiclient_key.pem PEM 格式的商戶 API 私鑰 /
openid 用戶的 OpenID,測(cè)試請(qǐng)求中的 /
appid 公眾賬號(hào)或者小程序的 AppID /
shangmi 值為 true 時(shí)使用商密簽名 默認(rèn)值為空,即使用 RSA 簽名
pubkey.pem 國(guó)密簽名時(shí)必填 PEM 格式的商戶 API 公鑰 如果私鑰 PEM 中包含公鑰,該變量可不填
server_url 服務(wù)器地址 默認(rèn)為 https://api.mch.weixin.qq.com

# 依賴庫(kù)

腳本直接使用了:

為了避免每次請(qǐng)求都下載依賴庫(kù),兩個(gè)庫(kù)以源代碼的方式存儲(chǔ)在 Collection Variables。這大大減少了使用網(wǎng)頁(yè)版 Postman 發(fā)送請(qǐng)求時(shí)的耗時(shí)。

# 安全注意事項(xiàng)

商戶 API 私鑰 是非常敏感的信息。使用此代碼時(shí),應(yīng)記住以下幾點(diǎn):

  • 將配置了私鑰的工作臺(tái)(workspace)的可見(jiàn)性(Visibility)設(shè)置為私有 Personal 或者 Private不要 設(shè)置為公開(kāi) Public
  • 私鑰的變量類(lèi)型設(shè)置為 secret。變量值會(huì)以掩碼的形式顯示在屏幕上。
  • 私鑰的變量值設(shè)置在 Current ValueCurrent Value 僅保存在本地 Session (opens new window),不會(huì)被發(fā)送至 Postman 的服務(wù)器。
  • 如果使用來(lái)自其他人的 Postman 腳本,請(qǐng)檢查依賴庫(kù)、變量和腳本,確保沒(méi)有被修改,避免被植入不安全代碼。

注意

有關(guān) Postman 的安全機(jī)制,請(qǐng)參考 Postman Security (opens new window)

# 本地導(dǎo)入腳本

Fork Collection 導(dǎo)入需要注冊(cè) Postman 賬戶。如果你離線或者不希望注冊(cè),有以下兩種方式本地導(dǎo)入。

  • Postman 界面左上角的 Import 按鈕
  • 菜單 File > Import 發(fā)起導(dǎo)入

選擇下載到本地的 wechatpay-apiv3.postman_collection.json (opens new window),點(diǎn)擊確認(rèn)后,導(dǎo)入便完成了。

你會(huì)發(fā)現(xiàn)在工作臺(tái)的 Collections 里新增了名為 《微信支付 APIv3》 的一組請(qǐng)求。

# 同步上游的變更

我們會(huì)逐步添加新接口和更新已有接口,但是你 fork 到自己工作臺(tái)的集合分支并不會(huì)自動(dòng)同步上游的變更。建議關(guān)注 watch 我們的 Public Workspace,這樣上游變更時(shí)你會(huì)收到來(lái)自 postman 的通知。

圖片

這時(shí),你可使用 pull changes 拉取上游的變更。

圖片

postman 的 pull changes 可能會(huì)需要等待一定時(shí)間完成。如果遇到問(wèn)題,重新 fork 也是一個(gè)好辦法。

# 常見(jiàn)問(wèn)題

# 發(fā)送請(qǐng)求時(shí)遇到錯(cuò)誤提示“Error: Too few bytes to parse DER.”或者“Too few bytes to read ASN.1 value.”

通常是環(huán)境 Environments 里配置的變量 merchantPrivateKey 填寫(xiě)有誤導(dǎo)致的。腳本接收的私鑰,以 -----BEGIN PRIVATEKEY----- 開(kāi)始,以 -----END PRIVATE KEY----- 結(jié)束的一串字符串。

# 為什么我發(fā)送請(qǐng)求很慢?

如果你使用的網(wǎng)頁(yè)版 Postman,請(qǐng)使用桌面版 Postman App (opens new window)。因?yàn)闉g覽器中跨域資源共享(CORS)的限制,網(wǎng)頁(yè)版發(fā)送請(qǐng)求是由 Postman 后臺(tái)中轉(zhuǎn)的。

或者使用 Postman desktop agent (opens new window),更多信息請(qǐng)參考 Postman 相關(guān)博客 (opens new window)