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

開發(fā)指引

更新時間:2023.08.23

# 1. 接口規(guī)則

為了在保證支付安全的前提下,帶給商戶簡單、一致且易用的開發(fā)體驗,我們推出了全新的微信支付APIv3接口。該版本API的具體規(guī)則請參考APIv3接口規(guī)則

# 2. 開發(fā)準備

# 2.1. 搭建和配置開發(fā)環(huán)境

為了幫助開發(fā)者調(diào)用開放接口,我們提供了JAVA、PHP、GO三種語言版本的開發(fā)庫,封裝了簽名生成、簽名驗證、敏感信息加/解密、媒體文件上傳 等基礎(chǔ)功能(更多語言版本的開發(fā)庫將在近期陸續(xù)提供)。

測試步驟:

1、根據(jù)自身開發(fā)語言,選擇對應(yīng)的開發(fā)庫并構(gòu)建項目,具體配置請參考下面鏈接的詳細說明:

更多資源可前往微信支付開發(fā)者社區(qū) (opens new window)搜索查看。

2、創(chuàng)建加載商戶私鑰、加載平臺證書、初始化httpClient的通用方法。

示例代碼

3、基于接口的示例代碼,替換請求參數(shù)后可發(fā)起測試。

說明:

  • 上面的開發(fā)庫為微信支付官方開發(fā)庫,其它沒有審核或者控制下的第三方工具和庫,微信支付不保證它們的安全性和可靠性。通過包管理工具引入SDK后,可根據(jù)下面每個接口的示例代碼替換相關(guān)參數(shù)后進行快速測試。
  • 開發(fā)者如果想詳細了解簽名生成、簽名驗證、敏感信息加/解密、媒體文件上傳等常用方法的具體代碼實現(xiàn),可閱讀下面的詳細說明:
  1. 簽名生成
  2. 簽名驗證
  3. 敏感信息加解密
  4. merchantPrivateKey(私鑰)
  5. wechatpayCertificates(平臺證書)
  6. APIV3Key(V3 key)
  • 如想更詳細的了解我們的接口規(guī)則,可查看我們的接口規(guī)則指引文檔

# 2.2. 業(yè)務(wù)開發(fā)配置

# 2.2.1.賬號申請指引

  • 小程序開通微信支付,即申請或復(fù)用微信支付商戶號,申請完小程序后,登錄小程序后臺 (opens new window)。點擊左側(cè)導(dǎo)航欄的微信支付,在頁面中進行開通。(開通申請要求小程序已發(fā)布上線)
圖片
  • 點擊開通按鈕后,有2種方式可以獲取微信支付能力,新申請微信支付商戶號或綁定一個已有的微信支付商戶號,請根據(jù)你的業(yè)務(wù)需要和具體情況選擇,只能二選一。詳見開通指引 (opens new window)
圖片

# 2.2.2.服務(wù)器配置要求

  1. 小程序訪問商戶服務(wù)都是通過HTTPS,開發(fā)部署的時候需要HTTPS服務(wù)器。
  2. 服務(wù)器域名配置。
  • 每個微信小程序需要事先設(shè)置通信域名,小程序只可以跟指定的域名進行網(wǎng)絡(luò)通信。包括普通 HTTPS 請求(wx.request)、上傳文件(wx.uploadFile)、下載文件(wx.downloadFile)和 WebSocket 通信(wx.connectSocket)。
  • 從基礎(chǔ)庫 2.4.0 開始,網(wǎng)絡(luò)接口允許與局域網(wǎng) IP 通信,但要注意 不允許與本機 IP 通信。

注意

  • 域名只支持 HTTPS (wx.request、wx.uploadFile、wx.downloadFile)和 wss(wx.connectSocket)協(xié)議。
  • 域名不能使用 IP 地址(小程序的局域網(wǎng) IP 除外)或 localhost
  • 可以配置端口,如 https://myserver.com:8080,但是配置后只能向 https://myserver.com:8080/ 發(fā)起請求。如果向 https://myserver.com、https://myserver.com:9091 等 URL 請求則會失敗。
  • 如果不配置端口。如 https://myserver.com,那么請求的 URL 中也不能包含端口,甚至是默認的 443 端口也不可以。如果向 https://myserver.com:443 請求則會失敗。
  • 域名必須經(jīng)過 ICP 備案。
  • 出于安全考慮, API.weixin.qq.com 不能被配置為服務(wù)器域名,相關(guān)API也不能在小程序內(nèi)調(diào)用。 開發(fā)者應(yīng)將AppSecret 保存到后臺服務(wù)器中,通過服務(wù)器使用 getAccessToken (opens new window) 接口獲取 access_token,并調(diào)用相關(guān) API。
  • 不支持配置父域名,使用子域名。
  • 可查閱小程序網(wǎng)絡(luò)請求 (opens new window)以了解更多信息。

# 3. 快速接入

# 3.1. 業(yè)務(wù)流程圖

圖片

重點步驟說明:

步驟4: 用戶下單發(fā)起支付,商戶可通過JSAPI下單創(chuàng)建支付訂單。

步驟9: 商戶小程序內(nèi)使用小程序調(diào)起支付API(wx.requestPayment)發(fā)起微信支付,詳見小程序API文檔 (opens new window)

步驟16: 用戶支付成功后,商戶可接收到微信支付支付結(jié)果通知支付通知API

步驟21: 商戶在沒有接收到微信支付結(jié)果通知的情況下需要主動調(diào)用查詢訂單API查詢支付結(jié)果。

# 3.2. API接入(含示例代碼)

本章節(jié)展示了如何使用微信支付服務(wù)端 SDK 快速接入小程序支付產(chǎn)品,完成與微信支付對接的部分。

注意

  • 文檔中的代碼示例是用來闡述 API 基本使用方法,代碼中的示例參數(shù)需替換成商戶自己賬號及請求參數(shù)才能跑通。
  • 以下接入步驟僅提供參考,請商戶結(jié)合自身業(yè)務(wù)需求進行評估、修改。

# 3.2.1. 【服務(wù)端】小程序下單

步驟說明: 用戶通過商戶小程序進入商戶網(wǎng)頁,當(dāng)用戶選擇相關(guān)商品購買時,商戶系統(tǒng)先調(diào)用該接口在微信支付服務(wù)后臺生成預(yù)支付交易單。

示例代碼

重要入?yún)⒄f明:

  • out_trade_no: 商戶系統(tǒng)內(nèi)部訂單號,只能是數(shù)字、大小寫字母_-*且在同一個商戶號下唯一。
  • description: 商品描述。
  • notify_url: 支付回調(diào)通知URL,該地址必須為直接可訪問的URL,不允許攜帶查詢串。
  • total: 訂單總金額,單位為分。
  • OpenID: OpenID是微信用戶在AppID下的唯一用戶標識(AppID不同,則獲取到的OpenID就不同),可用于永久標記一個用戶。OpenID獲取方式請參考以下文檔小程序獲取OpenID (opens new window)公眾號獲取OpenID (opens new window)App獲取OpenID (opens new window)

更多參數(shù)、響應(yīng)詳情及錯誤碼請參見JSAPI下單接口文檔。

# 3.2.2. 【客戶端】小程序調(diào)起支付API

步驟說明: 通過JSAPI下單成功獲取預(yù)支付交易會話標識(prepay_id) 后,需要通過小程序調(diào)起支付API來調(diào)起微信支付收銀臺。

注意

  • 此API需要將請求參數(shù)進行簽名(參與簽名的參數(shù)為:AppID、timeStamp、nonceStr、package,參數(shù)區(qū)分大小寫)。
  • AppID必須為最后拉起收銀臺的小程序AppID。
示例代碼

重要入?yún)⒄f明:

  • package: 小程序下單接口返回的prepay_id參數(shù)值,提交格式如:prepay_id=***。
  • signType: 該接口V3版本僅支持RSA。
  • paySign: 簽名。

paySign生成規(guī)則、響應(yīng)詳情請參見小程序調(diào)起支付API接口文檔。

# 3.2.3. 【服務(wù)端】接收支付結(jié)果通知

步驟說明: 當(dāng)用戶完成支付,微信會把相關(guān)支付結(jié)果將通過異步回調(diào)的方式通知商戶,商戶需要接收處理,并按文檔規(guī)范返回應(yīng)答。

注意

  • 支付結(jié)果通知是以POST 方法訪問商戶設(shè)置的通知URL,通知的數(shù)據(jù)以JSON 格式通過請求主體(BODY)傳輸。通知的數(shù)據(jù)包括了加密的支付結(jié)果詳情
  • 加密不能保證通知請求來自微信。微信會對發(fā)送給商戶的通知進行簽名,并將簽名值放在通知的HTTP頭Wechatpay-Signature。商戶應(yīng)當(dāng)驗證簽名,以確認請求來自微信,而不是其他的第三方。簽名驗證的算法請參考 《微信支付API v3簽名驗證》
  • 支付通知HTTP應(yīng)答碼為200或204才會當(dāng)作正常接收,當(dāng)回調(diào)處理異常時,應(yīng)答的HTTP狀態(tài)碼應(yīng)為500,或者4xx
  • 商戶成功接收到回調(diào)通知后應(yīng)返回成功的HTTP應(yīng)答碼為200或204
  • 同樣的通知可能會多次發(fā)送給商戶系統(tǒng)。商戶系統(tǒng)必須能夠正確處理重復(fù)的通知。 推薦的做法是,當(dāng)商戶系統(tǒng)收到通知進行處理時,先檢查對應(yīng)業(yè)務(wù)數(shù)據(jù)的狀態(tài),并判斷該通知是否已經(jīng)處理。如果未處理,則再進行處理;如果已處理,則直接返回結(jié)果成功。在對業(yè)務(wù)數(shù)據(jù)進行狀態(tài)檢查和處理之前,要采用數(shù)據(jù)鎖進行并發(fā)控制,以避免函數(shù)重入造成的數(shù)據(jù)混亂
  • 對后臺通知交互時,如果微信收到商戶的應(yīng)答不符合規(guī)范或超時,微信認為通知失敗,微信會通過一定的策略定期重新發(fā)起通知,盡可能提高通知的成功率,但微信不保證通知最終能成功。(通知頻率為15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 總計 24h4m)

特別提醒: 商戶系統(tǒng)對于開啟結(jié)果通知的內(nèi)容一定要做簽名驗證,并校驗通知的信息是否與商戶側(cè)的信息一致,防止數(shù)據(jù)泄露導(dǎo)致出現(xiàn)“假通知”,造成資金損失。

更多參數(shù)、響應(yīng)詳情及錯誤碼請參見 支付結(jié)果通知接口文檔。

# 3.2.4. 【服務(wù)端】查詢訂單

步驟說明:當(dāng)商戶后臺、網(wǎng)絡(luò)、服務(wù)器等出現(xiàn)異常,商戶系統(tǒng)最終未接收到支付通知時,商戶可通過查詢訂單接口核實訂單支付狀態(tài)

注意

查詢訂單可通過微信支付訂單號商戶訂單號兩種方式查詢,兩種查詢方式返回結(jié)果相同。

需要調(diào)用查詢接口的情況:

  • 當(dāng)商戶后臺、網(wǎng)絡(luò)、服務(wù)器等出現(xiàn)異常,商戶系統(tǒng)最終未接收到支付通知。
  • 調(diào)用支付接口后,返回系統(tǒng)錯誤或未知交易狀態(tài)情況。
  • 調(diào)用付款碼支付API,返回USERPAYING的狀態(tài)。
  • 調(diào)用關(guān)單或撤銷接口API之前,需確認支付狀態(tài)。

示例代碼(通過微信訂單號查詢):

示例代碼

更多參數(shù)、響應(yīng)詳情及錯誤碼請參見 微信支付訂單號/商戶訂單號接口文檔。

# 3.2.5. 【服務(wù)端】關(guān)閉訂單

步驟說明:當(dāng)商戶訂單支付失敗需要生成新單號重新發(fā)起支付,要對原訂單號調(diào)用關(guān)單,避免重復(fù)支付;系統(tǒng)下單后,用戶支付超時,系統(tǒng)退出不再受理,避免用戶繼續(xù),請調(diào)用關(guān)單接口

注意

  • 關(guān)單沒有時間限制,建議在訂單生成后間隔幾分鐘(最短5分鐘)再調(diào)用關(guān)單接口,避免出現(xiàn)訂單狀態(tài)同步不及時導(dǎo)致關(guān)單失敗。
  • 已支付成功的訂單不能關(guān)閉。
示例代碼

更多參數(shù)、響應(yīng)詳情及錯誤碼請參見 關(guān)閉訂單接口文檔。

# 3.2.6. 【服務(wù)端】申請交易賬單

步驟說明: 微信支付按天提供交易賬單文件,商戶可以通過該接口獲取賬單文件的下載地址。

示例代碼

更多參數(shù)、響應(yīng)詳情及錯誤碼請參見 申請交易賬單接口文檔。

# 3.2.7. 【服務(wù)端】下載賬單

步驟說明:通過申請交易賬單接口獲取到賬單下載地址(download_url)后,再通過該接口獲取到對應(yīng)的賬單文件,文件內(nèi)包含交易相關(guān)的金額、時間、營銷等信息,供商戶核對訂單、退款、銀行到賬等情況。

注意

  • 賬單文件的下載地址的有效時間為30s。
  • 強烈建議商戶將實際賬單文件的哈希值和之前從接口獲取到的哈希值進行比對,以確認數(shù)據(jù)的完整性。
  • 該接口響應(yīng)的信息請求頭中不包含微信接口響應(yīng)的簽名值,因此需要跳過驗簽的流程。
  • 微信在次日9點啟動生成前一天的對賬單,建議商戶10點后再獲取。
示例代碼

更多參數(shù)、響應(yīng)詳情及錯誤碼請參見 下載賬單接口文檔。

# 4. 常見問題

# Q:在小程序內(nèi)通過外部H5頁面調(diào)起支付報錯

A:目前在小程序內(nèi)只支持小程序支付,不支持H5或JSAPI支付。

# Q:調(diào)起小程序支付報“商戶號該產(chǎn)品權(quán)限未開通”

A:請按以下幾點進行排查:

  1. 請檢查請求參數(shù)是否正確,如請求參數(shù)中的AppID是否與小程序?qū)?yīng)。
  2. AppID對應(yīng)的小程序是否有開通小程序支付功能,權(quán)限狀態(tài)是否正常,可登錄商戶平臺核實。
  3. AppID與商戶號是否存在綁定關(guān)系,可登錄商戶平臺核實。

# Q:小程序開通微信支付有哪幾種方式?

A:可通過以下兩種方式開通:

  1. 綁定已有公眾號的微信支付:耗時10分鐘即可,只需原有公眾號開通微信支付,小程序微信支付可以選擇綁定原來的微信支付商戶號,即可開通成功。
  2. 新申請微信支付:耗時需要1-5個工作日,需要提交和申請小程序一樣的資料進行審核,審核通過后才能開通成功。