分布式秒殺項(xiàng)目集成支付寶支付時(shí)大致流程
1.微服務(wù)必須全部開啟
2.需要在支付寶的開放平臺(tái)-->研發(fā)服務(wù)--->沙箱環(huán)境中--->可以看到APPID和支付寶網(wǎng)關(guān)
3.下載支付寶的開放平臺(tái)開發(fā)助手,使用秘鑰工具,生成應(yīng)用私鑰和應(yīng)用公鑰
4.復(fù)制應(yīng)用公鑰到支付寶的沙箱環(huán)境中,點(diǎn)擊RSA2秘鑰,粘貼到應(yīng)用公鑰處,進(jìn)行加簽,生成支付寶公鑰
5.在網(wǎng)上注冊(cè)NATAPP這個(gè)內(nèi)網(wǎng)穿透的軟件,使用免費(fèi)隧道獲取免費(fèi)隧道的autoken并在配置中修改本地端口(改成自己項(xiàng)目中的網(wǎng)關(guān)的端口)
6.下載natapp_windows的一個(gè)壓縮包,然后解壓打開一個(gè)文件名是config.ini的文件,將上面獲取的autoken填寫到這個(gè)文件對(duì)應(yīng)的屬性上,其他屬性按照默認(rèn)值即可,不用改動(dòng)
7.啟動(dòng)natapp.exe,將會(huì)開啟一個(gè)命令窗口,復(fù)制命令窗口中Forwarding這一行中的一個(gè)url路徑:比如:http://x4m2cu.natappfree.cc 由于使用的是內(nèi)網(wǎng)穿透的免費(fèi)隧道,因此每次啟動(dòng)natapp,這個(gè)路徑都會(huì)變.都需要去gitee中配置,同時(shí)也可以看到這個(gè)路徑后面的端口,也就是剛剛在我的隧道中配置的本地端口
8.在gitee中配置alipay.yml,里面的屬性全部是支付寶sdk中的屬性,在將這些參數(shù)傳給支付寶之前,需要進(jìn)行配置才可以,將上面獲取的natapp路徑粘貼到return_url和notify_url中,同時(shí)在這兩個(gè)url后面還要配上對(duì)應(yīng)服務(wù)名:比如:
notify_url: http://mrjgk9.natappfree.cc/seckill/api/alipay/notify_url
return_url: http://mrjgk9.natappfree.cc/seckill/api/alipay/return_url
? notify_url表示是發(fā)起支付寶請(qǐng)求之后,支付寶異步通知回調(diào)接口(就是支付寶那邊接收參數(shù)以后調(diào)用的這個(gè)接口),這個(gè)接口主要是根據(jù)用戶的支付狀態(tài),更新訂單以及完成相關(guān)支付后的業(yè)務(wù)操作,正常的情況下返回一個(gè)success字符串
? return_url表示支付寶調(diào)用異步通知回調(diào)接口之后再調(diào)用的同步通知回調(diào)接口,這個(gè)接口的目的是向用戶展示支付結(jié)果
9.在秒殺服務(wù)中配置一個(gè)sdk的controller,用來將頁面請(qǐng)求發(fā)送來的參數(shù)通過商戶私鑰進(jìn)行加密,然后通過調(diào)用支付寶的sdk發(fā)送支付請(qǐng)求到支付寶后臺(tái),支付寶后臺(tái),使用商戶公鑰進(jìn)行解密,校驗(yàn)成功后,支付寶會(huì)在后臺(tái)為對(duì)應(yīng)的商戶創(chuàng)建一筆未支付的支付訂單,同時(shí)將結(jié)果響應(yīng)給支付寶sdk,支付寶sdk在將結(jié)果響應(yīng)到瀏覽器上
? 關(guān)于參數(shù)數(shù)據(jù)驗(yàn)證:在將參數(shù)發(fā)送給支付寶之前,需要對(duì)數(shù)據(jù)進(jìn)行簽名加密,使用私鑰對(duì)參數(shù)進(jìn)行加密,得到就是簽名,也就是密文,支付寶后臺(tái)收到以后將會(huì)對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,使用商戶公鑰對(duì)簽名進(jìn)行解密,得到對(duì)應(yīng)的加密的參數(shù),.然后判斷是否和傳過來的參數(shù)一致,如果一致說明參數(shù)沒有被修改過
10.支付寶sdk獲取響應(yīng)結(jié)果以后,發(fā)主動(dòng)發(fā)送重定向到支付寶支付頁面,這時(shí)候用戶需要進(jìn)行登錄,------>選擇支付方式----->發(fā)送支付請(qǐng)求----->支付寶后臺(tái)收到支付請(qǐng)求以后需要對(duì)對(duì)用戶的的身份/權(quán)限/余額等進(jìn)行校驗(yàn),校驗(yàn)成功后將會(huì)從用戶賬戶中扣款,打款到商戶對(duì)應(yīng)的賬戶中,飯后將支付結(jié)果響應(yīng)給支付頁面,然后又會(huì)響應(yīng)到sdk中的result_url方法中,最終將會(huì)響應(yīng)給用戶...