1. 程式人生 > >使用Node.js搭建微信支付後臺(三)

使用Node.js搭建微信支付後臺(三)

2.3 商戶支付注意規則

2.3.1 協議規則

 
2.3.2 安全規範

安全規範主要在於微信互動過程中需要注意的事項

1. 簽名演算法------簽名校驗工具

步驟:

第一步,設所有傳送或者接收到的資料為集合M,將集合M內非空引數值的引數按照引數名ASCII碼從小到大排序(字典序),使用URL鍵值對的格式(即key1=value1&key2=value2…)拼接成字串stringA。 第二步,在stringA最後拼接上key得到stringSignTemp字串,並對stringSignTemp進行` MD5運算` ,再將得到的字串所有字元轉換為`大寫`,得到sign值signValue。 key設定路徑:微信商戶平臺(pay.weixin.qq.com)-->賬戶設定-->API安全-->金鑰設定

例子:

1. 假設傳送的引數如下:

-----------------------

appid:    wxd930ea5d5a258f4f

mch_id:    10000100

device_info:    1000

body:    test

nonce_str:    ibuaiVcKdpRxkhJA

-----------------------

2. 對引數按照key=value的格式,並按照引數名ASCII字典序排序如下: -----------------------stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";

-----------------------

3. 第二步:拼接API金鑰: ----------------------- stringSignTemp=stringA+"&key=192006250b4c09247ec02edce69f6a2d"sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A9CF3B7" -----------------------

4. 最終結果

 =======================

<xml>

<appid>wxd930ea5d5a258f4f</appid>

<mch_id>10000100</mch_id>

<device_info>1000<device_info>

<body>test</body>

<nonce_str>ibuaiVcKdpRxkhJA</nonce_str> <sign>9A0A8659F005D6984697E2CA0A9CF3B7</sign> </xml> =======================

注意事項:

◆ 引數名ASCII碼從小到大排序(字典序); ◆ 如果引數的值為空不參與簽名; ◆ 引數名區分大小寫; ◆ 驗證呼叫返回或微信主動通知簽名時,傳送的sign引數不參與簽名,將生成的簽名與該sign值作校驗。 ◆ 微信介面可能增加欄位,驗證簽名時必須支援增加的擴充套件欄位

2.3.3 證書相關內容

涉及資金回滾時,需要用到證書,比如退款、撤銷介面, 證書一共包含四個(pkcs12格式,CA證書(rootca.pem),證書pem格式(apiclient_cert.pem),證書金鑰pem格式(apiclient_key.pem)) 其中 apiclient_cert.p12是商戶證書檔案,除PHP外的開發均使用此證書檔案。


我們關注的主要是apiclient_cert.p12是商戶證書檔案,路徑下載:

微信商戶平臺(pay.weixin.qq.com)-->賬戶中心-->賬戶設定-->API安全-->證書下載 

2.4 業務流程圖

四種支付,四種不同的流程圖,所以羅列下來吧

相關推薦

使用Node.js搭建支付後臺

2.3 商戶支付注意規則 2.3.1 協議規則   2.3.2 安全規範 安全規範主要在於微信互動過程中需要注意的事項 1. 簽名演算法------(簽名校驗工具) 步驟: 第一步,設所有傳送或者接收到的資料為集合M,將集合M內非空引數值的引數按照引數名ASCII碼從小到

使用Node.js搭建支付後臺

第一部分前期儲備 1.1 註冊前的概述 從微信公眾平臺可以獲取到公眾號的分類如下: 1. 服務號:主要偏於為使用者傳達資訊(類似報紙雜誌),認證前後都是每天只可以群發一條訊息;【適用人群】:媒體,企業,政府或其他組織 2. 訂閱號: 主要偏於服務互動(類似銀行,114,提供

【轉】小程序實現支付功能可用

arr 必須 enc red use sam func 結束 單表 原博: https://blog.csdn.net/fredrik/article/details/79697963 微信小程序實現微信支付功能 直接把裏面的參數替換成你的就

用Java搭建公眾號生成access_token

當自己的程式需要訪問微信的HTTP介面時,需要傳遞access_token作為校驗的引數。access_token需要通過APPID和APPSecret祕鑰來生成,有效期是7200秒,2小時。access_token最好是做成全域性變數共享,然後由一個執行緒定時去重新整理,這樣可以減少access_

教你如何用node.js開發微公眾號

內容簡介 本文章簡單介紹瞭如何用node.js開發微信公眾號。主要內容包括signature的驗證,access_token的生成,微信事件的接收,還有各種api的呼叫。 準備工作 開發前需要安裝好node.js,因為我是基於express框架開發的,所以裝了express(框架按自己的需求選擇),需要

Java支付總結:獲得prepay_id以及生成支付簽名

預設你已經取得了微信支付相關的許可權,並且有了商戶號,key值等等。 如果你一直簽名錯誤,請看上一篇帖子:http://blog.csdn.net/qq_25821067/article/details/55253399 要想獲取prepay_id,就必須要生成正確的簽名,

App支付接入—— hbuilder前端程式碼

4、App接入微信支付,使用hbuilder中的支付 (2)在觸發支付事件中新增程式碼 // 獲取支付通道 plus.payment.getChannels(function(channels) { for (var i in channels) { v

小程式:返回上一級頁面並重新整理頁面棧

在很多業務場景之下,需要返回上一級頁面,並進行重新整理,在微信小程式中的wx.navigateBack方法中,返回上一頁是不會重新整理的。如果上一頁的頁面載入是在onLoad方法中觸發的話,那麼可以修改為在onShow方法中觸發。 onLoad(Object query):

小程式:選座系統2主要內容:陣列的動態更改

人生無趣且不易,一起找點樂子吧。歡迎評論,和文章無關也沒問題。 上篇文章我們主要說了列表的渲染,給定個數組,讓他根據我們的要求“畫”在介面上,最後我們也提到,如果想要想要改變介面,只要相應的改變對應陣列的內容就可以了。 這次我們就來講怎樣從介面獲得資料,然後在

小程式:選座系統3主要內容:陣列的動態生成

人生不易且無趣,一起找點樂子吧。歡迎評論,和文章無關的也可以。 前面我們說了列表的渲染,由一個二維陣列,怎樣去畫出座位。還談了陣列的修改,怎樣從座位的點選事件,獲得對應的位置,也就是陣列的下標,去修改相應的值。這次我們來談談最後的一塊的內容,這應該是這個板塊的最

開發系列_編寫伺服器程式——生成選單

選單的生成是不需要伺服器,只需要編寫程式碼執行一次就可以生成 ()   生成選單所要向微信端傳輸的資料為 AccessToken(可通過appID和AppSecret獲取),和Json格式的選單 微信開發文件網址(點選開啟連結) 一:首先編寫選單的實體類Caidan.ja

小程式——引入百度api天氣資訊全過程

微信小程式本身是不提供天氣api的,所以本文使用的是百度的api。 ▍效果圖 先附上個人製作的一個簡易的效果圖,為了排版方便,所以還有很多天氣資訊我沒有放到頁面上。 ▍事先準備 如果想要達到預期效果,你的小程式必須滿足以下條件: 1、必須有【APPID】

Node.js+Express公眾號開發】第一步:服務搭建接入

一、前言 此前微信開發,都比較依賴後端。然而有時候後端小夥伴特別忙,最近又學習了一下node的基礎知識,索性就想著自己用node整一遍。 本教程環境為linux系統centOs7系統 二、準備工作 1. 伺服器 伺服器我使用的是搬瓦工的,目前19.9美元那款,網上有

小程式5搭建SpringBoot後臺

使用IntelliJ IDEA搭建一個整合SpringBoot的Maven聚合專案 結構如圖                             &nb

支付----APP安卓,IOS調起支付所需引數,c#後臺介面

#region 微信APP支付介面 /// <summary> /// 微信APP支付介面 /// </summary> /// <param name="out_trade_no

Node.js實現PC端類聊天軟體

Github StackChat 用到的React-Router React-Router是React路由的解決方案之一,也可以使用別的庫 安裝 npm install react-router --save-dev 路由配置 react-router主要提供了幾個元件來進行路由之間結構的組織

支付後臺獲取openid

except pos prot params tostring stat buffered boolean exc @RequestMapping(value = "/postOpenid", method = RequestMethod.POST) @ResponseBo

【PHP原生】xml和數組互轉支付簽名算法

互轉 amp 字母 ble md5加密 clas toarray sig val 數組轉XML publicfunction arrayToXml($arr) { $xml ="<xml>"; foreach($arr as $key =&g

支付退款PHP後端

應用場景 當交易發生之後一段時間內,由於買家或者賣家的原因需要退款時,賣家可以通過退款介面將支付款退還給買家,微信支付將在收到退款請求並且驗證成功之後,按照退款規則將支付款按原路退到買家帳號上。 微信官方退款文件 其實微信退款呢,也就是你沒做過,感覺挺難的,其實跟其他介面一樣,都是調介面,只是請求的時候

Node.js 獲取JS-SDK CONFIG

背景 前端在呼叫微信提供的分享、拍照、掃一掃等功能時需要到後臺獲取配置,主要是簽名(signature)。Node 開發可以用樸靈大佬的SDK——co-wechat-api。 配置 到微信公眾平臺進入“公眾號設定”的“功能設定”裡填寫“JS介面安全域名”。前提是該域名的專案目錄下有微信提供的校驗檔案。如