微信 支付寶 支付技術 源碼介紹
- 2019 年 11 月 25 日
- 筆記
from:Java學習
最近,公司因為智慧消防項目推出智慧充電樁的項目,馬上要進行充電樁設備管理系統的研發,擬使用微信二維碼來實現這個收款,所以整理了一下微信支付和支付寶支付技術。
一、微信支付
1、JSAPI網頁支付
JSAPI網頁支付即前文說的公眾號支付,可在微信公眾號、朋友圈、聊天會話中點擊頁面鏈接,或者用微信「掃一掃」掃描頁面地址二維碼在微信中打開商戶HTML5頁面,在頁面內下單完成支付。
2、 Native原生支付
Native原生支付即前文說的掃碼支付,商戶根據微信支付協議格式生成的二維碼,用戶通過微信「掃一掃」掃描二維碼後即進入付款確認介面,輸入密碼即完成支付。
3 、接入方式
微信支付系統是指完成微信支付流程中涉及的API介面、後台業務處理系統、賬務系統、回調通知等系統的總稱。微信支付分為公眾號支付,App支付,掃碼支付(包括PC 網站),刷卡支付(設備掃描用戶手機)
接通掃碼支付流程:

步驟1:商戶根據微信支付的規則,為不同商品生成不同的二維碼,展示在各種場景,用於用戶掃描購買。
步驟2:用戶使用微信「掃一掃」掃描二維碼後,獲取商品支付資訊,引導用戶完成支付。
步驟3:用戶確認支付,輸入支付密碼。
步驟4:支付完成後會提示用戶支付成功,商戶後台得到支付成功的通知,然後進行發貨處理。
4、開發步驟
商戶後台系統根據微信支付規則鏈接生成二維碼,鏈接中帶固定參數productid(可定義為產品標識或訂單號)。用戶掃碼後,微信支付系統將productid和用戶唯一標識(openid)回調商戶後台系統(需要設置支付回調URL),商戶後台系統根據productid生成支付交易,最後微信支付系統發起用戶支付流程。
商戶支付回調URL設置指引:進入公眾平台-->微信支付-->開發配置-->掃碼支付-->修改

5、申請商戶功能,在我的服務裡面找商戶功能,填寫三部分資料,如圖


二、支付寶
1、 支付寶企業賬戶申請材料
註冊前需要準備:影印件必須為彩色原件的掃描件或數碼照,營業執照影印件,對公銀行賬戶等資料。

2、 PC收款
網銀支付收款產品准入條件
(1)您申請前必須擁有企業支付寶帳號(不含個體工商戶),且已通過支付寶實名認證審核;註冊支付寶企業賬戶;
(2)您必須有已建設完成的網站(非淘寶、天貓、誠信通網店、團購類網站),且已通過ICP備案,備案資訊與簽約商戶資訊一致,網站經營的商品或服務內容明確、完整;
(3)您已成功簽約支付寶即時到賬產品,且是非團購類商家;
(4)實物類交易網站或符合條件的虛擬類交易網站
3、接入流程

接入方式
根據支付寶介面,在申請通過審核後,獲取相應的商戶碼和key,在支付頁面展示相應的鏈接。用戶點擊該支付鏈接後,進入支付寶支付頁面。支付完成後,進入網站支付完成頁面。
在簽約管理里可以下載技術集成文檔,申請相應的apid和key。
4、技術集成流程

(1)獲取appid
簽約產品後,開發者登錄開放平台-管理中心-我的應用,選擇需要查看APPID的應用點擊「查看」, 即可看到本應用的APPID值,如下圖。

(2)成key
直接運行「支付寶RAS密鑰生成器SHAwithRSA1024_V1.0.bat」或者
「SHAwithRSA1024_V1.0.command」,點擊生成RSA密鑰,會自動生成公私鑰,然後點擊「打開文件位置」,即可找到工具自動生成的密鑰。
或使用OpenSSL工具命令生成:
首先進入OpenSSL工具,再輸入以下命令。
OpenSSL> genrsa -out rsa_private_key.pem 1024 #生成私鑰OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem #Java開發者需要將私鑰轉換成PKCS8格式OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem #生成公鑰OpenSSL> exit #退出OpenSSL程式
經過以上步驟,開發者可以在當前文件夾中(OpenSSL運行文件夾),看到rsa_private_key.pem(RSA私鑰)、rsa_private_key_pkcs8.pem(pkcs8格式RSA私鑰)和rsa_public_key.pem(對應RSA公鑰)3個文件。開發者將私鑰保留,將公鑰提交給支付寶網關,用於驗證簽名。以下為私鑰文件和公鑰文件示例。
(3)上傳公鑰&獲取支付寶公鑰
1. 開發者登錄開放平台-管理中心-我的應用,選擇需要上傳公鑰的應用點擊「查看」,點擊「應用環境」:
2. 點擊「設置應用公鑰」,將公鑰文件去除頭尾、換行和空格,僅需填入字元串。
5、 用支付寶提供的SDK集成
1.獲取SDK
2.配置公私鑰、公共請求參數
3.介面調用示例
4.獲取SDK
開放平台SDK主要支援JAVA(SDK1.5、SDK1.4)、.NET、PHP 3種語言。
介面調用示例大致分為3步:
①拼裝業務參數
②將參數發送給開放平台服務端
③獲取開放平台服務端返回值,並進行具體業務處理

