您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Ruby如何集成支付寶快捷支付,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
客戶端集成移動端支付寶快捷支付,iOS和Android端很方便,使用支付寶提供的sdk就可以了,要注意的地方就是:
一定要用支付寶提供的工具,生成商戶自己的公鑰和密鑰,密鑰要經過pkcs8編碼。這些都可以使用支付寶提供的工具來完成。
要把商戶的公鑰提交到支付寶。
基本上看著文檔就可以很快完成集成測試。
當用戶手機沒有安裝支付寶App,則會彈出安裝支付寶App的彈窗,點確定就去下載支付寶App,點取消就彈出webview打開網頁版支付寶結算。
服務端是用Ruby。
因為所有的支付請求都由客戶端完成了,那么服務端只剩下了實現支付寶異步通知接口的任務。
異步通知接口有兩步工作:RSA簽名驗證、Notify ID驗證是否支付寶請求。
目前快捷支付的簽名類型,只支持RSA, 所以服務端接收異步通知的接口Notify就只能用RSA來驗證簽名。支付RSA驗證的邏輯是這樣的(文檔里也有描述,理解這個邏輯有助于順利完成驗證):
商戶使用支付寶提供的工具生成RSA公鑰私鑰,并把商戶公鑰提交給支付寶。 這一步意味著雙方互換公鑰。
支付寶發給商戶的請求是用支付寶的私鑰加密的,所以必須用支付寶的公鑰解密,而支付寶的公鑰在文檔里已經提供。
商戶發往支付寶的請求,必須是商戶自己的私鑰加密,而支付寶那邊用商戶的公鑰解密。就是移動客戶端sdk完成的工作。所以移動客戶端那邊一定是用商戶自己的私鑰,并且是經過pkcs8編碼的。
理解了RSA的加密解密邏輯,我們就了解了,服務端后臺要驗證來自于支付寶的異步通知POST請求,必須用支付寶的公鑰了。
復制文檔里支付寶的RSA公鑰, 換行的部分用\n代替,如下:
然后,我們使用OpenSSL::PKey::RSA類:
alipay_pub_key是上面的支付寶公鑰。
一定要上面這種格式,或者你使用工具生成符合pem格式的pem文件,否則會報錯。
然后我們就可以使用rsa的verify方法驗證簽名了:
注意,這里的sign,是支付寶請求里的簽名參數, 這里的sign一定要經過base64解碼。rsa_string是根據支付寶文檔生成的待簽名字符串。
這樣,你就可以完成RSA驗證了。
這個很簡單, 帶上支付寶文檔里提供的參數,給支付驗證接口發個請求就可以了。
關于“Ruby如何集成支付寶快捷支付”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。