Ping++ 主要為移動App提供第三方支付SDK,集成了所有主流支付渠道的SDK.幫助開發(fā)者一次性接入所有渠道.讓您的支付更便捷.
定制設(shè)計可以根據(jù)自己的需求進行定制,做網(wǎng)站、成都網(wǎng)站建設(shè)構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司做網(wǎng)站、成都網(wǎng)站建設(shè)的運用實際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實際意義
Ping++ 是輕便高效的聚合支付模塊,讓開發(fā)中的移動應(yīng)用或網(wǎng)頁使用幾行代碼就能同時接入主流支付渠道,獲得支付功能。
H5支付接入,網(wǎng)頁支付接入,商家掃碼支付接入,詳情了解請進網(wǎng)站內(nèi)。
技術(shù)棧SpringbootjavaXML(微信在http協(xié)議中數(shù)據(jù)傳輸方案)MD5簽名微信支付術(shù)語openid(OpenID是公眾號一對一對應(yīng)用戶身份的標(biāo)識)app_id(公眾號id,登錄微信公眾號_開發(fā)_基本配置中獲得;)key(收款商戶后臺進行配置,登錄微信商戶平臺_賬戶中心_API安全-設(shè)置秘鑰,設(shè)置32位key值;)mch_id(收款商家商戶號;)certPath(API證書,登錄微信商戶平臺_賬戶中心-API安全-下載證書)后端流程
服務(wù)端需要的核心操作,總共分為以下幾步:
統(tǒng)一下單前端調(diào)起微信支付必要參數(shù)(需加密)訂單結(jié)果主動通知(回調(diào)接口)查詢訂單結(jié)果結(jié)束訂單支付接口(關(guān)閉訂單,支付訂單關(guān)閉)代碼
微信總共支持多種語言的sdk,在官網(wǎng)可以下載例子,java程序也可以引入微信支付的sdk包,但是github上的sdk已經(jīng)很久沒有更新了,最好的選擇,也是我的選擇,在官網(wǎng)上下載sdk項目,將其中所有java類copy到自己的項目中.
官網(wǎng)sdk下載目錄鏈接:商戶平臺首頁
微信sdk下載根據(jù)微信sdk生成配置類WXPayConfig
創(chuàng)建IWxPayConfig.class,繼承sdkWXPayConfig.class,實現(xiàn)sdk中部分抽象方法,讀取本地證書,加載到配置類中.packagecore點抗 .chidori.wxpay;
發(fā)起統(tǒng)一下單AND前端調(diào)起微信支付必要參數(shù)回調(diào)結(jié)果處理
核心是支付訂單回調(diào)時,需校驗加密簽名是否匹配,防止出現(xiàn)模擬成功通知
注意點
統(tǒng)一下單的簽名和后續(xù)前端拉取微信支付的簽名需要統(tǒng)一,也就是都采用MD5加密,如果2者不同,會導(dǎo)致前端拉取微信支付fail,這是一個巨大的坑,因為這個原因調(diào)試了好久,微信在文檔里沒有明確標(biāo)出統(tǒng)一下單的簽名校驗方式需要和前端拉取微信支付的簽名校驗保持一致.微信sdk里的源碼需要針對這個問題調(diào)整一下,調(diào)整如下:WXPay類需要修改下加密判斷,在WXPay構(gòu)造方法中,調(diào)整如下
結(jié)束語
做完以后,微信支付的后端邏輯還是很清晰的,但是在開發(fā)過程中很煎熬,不清楚每個專業(yè)術(shù)語在微信哪里配置,加密方式亂的很
一、直接接入微信支付二、通過微信二次開發(fā)商的平臺接入支付功能,三、在微信平臺中加入微網(wǎng)頁,四、通過第三方APP收款,
微信掃碼支付,有兩種模式,文檔中有介紹。第二種模式,微信接口會返回二維碼信息給我們。而第一種模式則需要我們自己去生成二維碼信息。會有些麻煩。尤其 是參數(shù)大小寫,還有簽名的問題,容易出錯。
總的來說第二種模式比第一種模式簡單。所有我采用的是第二種模式,比較通用。京東與攜程亦用的是第二種模式。