java支付寶支付原理及其問(wèn)題點(diǎn)

一般使用支付寶支付的原理 :

摘自支付寶

現(xiàn)支付寶的通知基本上有兩類(lèi)疤坝。

A服務(wù)器通知,對(duì)應(yīng)的參數(shù)為notify_url,支付寶通知使用POST方式

B頁(yè)面跳轉(zhuǎn)通知责嚷,對(duì)應(yīng)的參數(shù)為return_url,支付寶通知使用GET方式 (通知地址不需要像以前一樣去賬戶(hù)內(nèi)設(shè)置掂铐,而是由客戶(hù)在支付的時(shí)候通過(guò)參數(shù)傳遞給我地址罕拂。

四、 通知返回

a) 返回頁(yè)

傳遞給支付寶時(shí)的return_url參數(shù)所對(duì)應(yīng)的頁(yè)面文件全陨。

具備的屬性:

1爆班、支付接口中買(mǎi)家的購(gòu)買(mǎi)流程已經(jīng)走到支付寶里且支付寶提示支付成功時(shí),頁(yè)面會(huì)自動(dòng)跳轉(zhuǎn)回自身網(wǎng)站的這個(gè)頁(yè)面里來(lái)辱姨。

2柿菩、同步的,無(wú)時(shí)差

3雨涛、獲得參數(shù)的方法是用get方式獲取枢舶。

4、不論跳轉(zhuǎn)回來(lái)程序判斷是真還是假(if(sign = mysign and responseTxt = true))只跳轉(zhuǎn)回來(lái)一次替久,不重復(fù)凉泄。

5、這個(gè)并不是支付寶服務(wù)器調(diào)用了該頁(yè)面侣肄,而是通過(guò)與組合拼接各參數(shù)形成的URL鏈接原理等同旧困,拼接出來(lái)的URL鏈接,之后程序上做自動(dòng)跳轉(zhuǎn)稼锅。

6吼具、基于5的原因,該頁(yè)面的程序調(diào)試可不必在服務(wù)器上而是本機(jī)上調(diào)試矩距、運(yùn)行拗盒。

b) 通知頁(yè)

傳遞給支付寶時(shí)的notify_url參數(shù)所對(duì)應(yīng)的頁(yè)面文件

具備的屬性:

1、這個(gè)通知頁(yè)就是被支付寶調(diào)用才能啟動(dòng)的锥债。

2陡蝇、服務(wù)器間的互動(dòng)痊臭,不像返回頁(yè)肉眼可以看到,這個(gè)是看不到的登夫。

3广匙、獲得參數(shù)的方法是用POST方式獲取。

4恼策、支付寶中的該筆交易存在鸦致,且該筆交易狀態(tài)發(fā)生了變更,就會(huì)被調(diào)用涣楷。

5分唾、被調(diào)用程序判斷(if(sign = mysign and responseTxt = true)),若我們自己在該判斷中有做程序編寫(xiě)狮斗,成功則不再被調(diào)用绽乔,不成功則會(huì)反復(fù)被調(diào)用。

6碳褒、異步的折砸,第一次收到訂單信息(以下都稱(chēng)之為“通知”)是與返回頁(yè)近乎等同或等同的同步時(shí)間,在判斷不成功的情況下骤视,會(huì)收到第二次第三次等次數(shù)的通知鞍爱,時(shí)間間隔從最先的一兩分鐘,到后面的幾個(gè)小時(shí)专酗。失效時(shí)間是4

8小時(shí)。

7盗扇、基于6的原因祷肯,該頁(yè)面的程序調(diào)試必須在服務(wù)器上調(diào)試、運(yùn)行疗隶。

8佑笋、程序編寫(xiě)時(shí)必須采用程序執(zhí)行成功,才寫(xiě)頁(yè)面response.Write(“success”);斑鼻,不成功則寫(xiě)頁(yè)面response.Write(“fail”); 支付寶根據(jù)success來(lái)判定是否要重新再次發(fā)送通知蒋纬。

9、該頁(yè)面的Html頁(yè)面中必須是空白坚弱、無(wú)任何Html標(biāo)簽蜀备、無(wú)任何空格、不允許做頁(yè)面跳轉(zhuǎn)荒叶。

異步返回結(jié)果

第一步: 在通知返回參數(shù)列表中碾阁,除去sign、sign_type兩個(gè)參數(shù)外些楣,凡是通知返回回來(lái)的參數(shù)皆是待驗(yàn)簽的參數(shù)脂凶。

第二步: 將剩下參數(shù)進(jìn)行url_decode, 然后進(jìn)行字典排序宪睹,組成字符串,得到待簽名字符串,

第三步: 將簽名參數(shù)(sign)使用base64解碼為字節(jié)碼串蚕钦。

第四步: 使用RSA的驗(yàn)簽方法亭病,通過(guò)簽名字符串、簽名參數(shù)(經(jīng)過(guò)base64解碼)及支付寶公鑰驗(yàn)證簽名嘶居。

第五步:在步驟四驗(yàn)證簽名正確后罪帖,必須再?lài)?yán)格按照如下描述校驗(yàn)通知數(shù)據(jù)的正確性。

常見(jiàn)問(wèn)題:

1.根據(jù)代碼實(shí)例和開(kāi)發(fā)文檔熟悉接口食听,將代碼實(shí)例的相關(guān)參數(shù)信息填寫(xiě)完整(可以虛擬參數(shù))胸蛛,在本地測(cè)試(不上傳到服務(wù)器)支付寶接口。如果沒(méi)有任何問(wèn)題再將接口根據(jù)實(shí)際業(yè)務(wù)做到網(wǎng)站或者網(wǎng)站后臺(tái)樱报。

2.測(cè)試時(shí)您們需要兩個(gè)支付寶賬戶(hù)葬项,其中一個(gè)必須實(shí)名認(rèn)證并且保證有一定的金額,以便測(cè)試時(shí)使用迹蛤。另外一個(gè)帳戶(hù)可以作為收款方(賣(mài)家)(針對(duì)于支付接口)

3.如果做支付寶訂單信息和您們后臺(tái)數(shù)據(jù)同步請(qǐng)集成時(shí)做數(shù)據(jù)返回處理民珍,本地測(cè)試可以使用同步測(cè)試,如果在服務(wù)器上測(cè)試盗飒,可以通過(guò)異步來(lái)做也可以(支付寶有兩種數(shù)據(jù)返回處理:同步返回和異步返回)嚷量。

同步返回(return_url)和異步返回(notify_url)的區(qū)別【return_url和notify_url參數(shù)必須是兩個(gè)返回處理文件的絕對(duì)路徑】?

答:同步返回處理(return_url):是一種可視化的返回逆趣,ie頁(yè)面跳轉(zhuǎn)通知蝶溶,只要支付成功,支付寶通過(guò)get方式跳轉(zhuǎn)到這個(gè)地址宣渗,并且?guī)в袇?shù)給這個(gè)頁(yè)面抖所。客戶(hù)獲取信息受到買(mǎi)家操作的影響痕囱。如果買(mǎi)家支付完

成后客戶(hù)服務(wù)器響應(yīng)比較慢田轧,買(mǎi)家在顯示支付寶提示的“即時(shí)到賬支付成功“時(shí)關(guān)閉頁(yè)面,那么客戶(hù)網(wǎng)站是獲取不到信息鞍恢,我們這邊稱(chēng)為” 掉單“傻粘。而且這個(gè)返回處理是一次性調(diào)取,即支付成功后才調(diào)取同步返回處理帮掉。

異步返回處理(notify_url):它的數(shù)據(jù)交互是通過(guò)服務(wù)器間進(jìn)行數(shù)據(jù)交互,必須將其放置在服務(wù)器上(公網(wǎng))測(cè)試弦悉,服務(wù)器post消息到異步返回處理頁(yè)面,需要客戶(hù)技術(shù)在異步返回處理頁(yè)面處理相關(guān)的數(shù)據(jù)處理

旭寿,然后每一步操作都要返回給支付寶success(不能包含其他的HTML腳本語(yǔ)言警绩,不可以做頁(yè)面跳轉(zhuǎn)。)這個(gè)返回處理如果集成OK盅称,那么基本不會(huì)出現(xiàn)掉單肩祥,因?yàn)橹Ц秾殨?huì)在24小時(shí)之內(nèi)分6~10次將訂單信息返回

個(gè)給客戶(hù)網(wǎng)站后室,直到支付寶捕獲success。

備注:同步返回處理則會(huì)受到買(mǎi)家操作的影響:

假如買(mǎi)家在操作的時(shí)候混狠,支付寶完畢進(jìn)入支付寶提示成功頁(yè)面岸霹,這個(gè)時(shí)候由于服務(wù)器相應(yīng)比較慢,那么買(mǎi)家有可能會(huì)關(guān)閉這個(gè)頁(yè)面将饺,這個(gè)時(shí)候您們就會(huì)接受不到支付寶返回的信息贡避,還有有些網(wǎng)銀支付后也不會(huì)調(diào)取支付寶的同步返

回處理頁(yè)面,這樣您在同步做數(shù)據(jù)處理同樣接受不到數(shù)據(jù)予弧。

備注:

請(qǐng)注意:現(xiàn)在您們集成的時(shí)候先按照提供給您們的測(cè)試賬戶(hù)的ID來(lái)做刮吧,至于正式賬戶(hù)的ID您們可以找等合同正式生效后再查詢(xún)(獲取方法:登陸簽約的

支付寶賬戶(hù)-?點(diǎn)擊“商家服務(wù)”,就可以看到)

--處理支付寶返回通知失敗幾種情況:

1掖蛤、SIGN與MYSIGN不等杀捻,responseTxt為invalid命令參數(shù)不對(duì),該錯(cuò)誤 是由于合作伙伴ID(parnterID)與安全校驗(yàn)碼(key)未填蚓庭,或填錯(cuò)導(dǎo)致

2致讥、SIGN與MYSIGN相等,responseTxt為false器赞,是由于服務(wù)器垢袱、端口等因素導(dǎo)致,這時(shí)請(qǐng)檢查

a.防火墻是否屏蔽支付寶的IP(支付寶鎖使用的IP地址是:121.0.26.11,范圍:121.026.0~255)

b.端口80或者443端口開(kāi)放沒(méi)有或者被其他服務(wù)占用

c.以上如果都沒(méi)有問(wèn)題港柜,可能會(huì)是網(wǎng)絡(luò)驗(yàn)證超時(shí)導(dǎo)致(支付寶驗(yàn)證時(shí)間是1分鐘请契,SIGN與MYSIGN不等會(huì)導(dǎo)致超時(shí)),需要等待網(wǎng)絡(luò)穩(wěn)定再確定問(wèn)題

3夏醉、SIGN與MYSIGN不等姚糊,responseTxt為true,此時(shí)只有兩種情況會(huì)出現(xiàn):

其一:傳遞參數(shù)時(shí)格式不符合(例如:帶自定義參數(shù))導(dǎo)致簽名不一致

其二:編碼格式出現(xiàn)問(wèn)題授舟,這時(shí)候請(qǐng)檢查服務(wù)器編碼和網(wǎng)站編碼是否一致,可以寫(xiě)編碼過(guò)濾解決也可以在返回頁(yè)面強(qiáng)制編碼轉(zhuǎn)換

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贸辈,一起剝皮案震驚了整個(gè)濱河市释树,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌擎淤,老刑警劉巖奢啥,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異嘴拢,居然都是意外死亡桩盲,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)席吴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)赌结,“玉大人捞蛋,你說(shuō)我怎么就攤上這事〖硪Γ” “怎么了拟杉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)量承。 經(jīng)常有香客問(wèn)我搬设,道長(zhǎng),這世上最難降的妖魔是什么撕捍? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任拿穴,我火速辦了婚禮,結(jié)果婚禮上忧风,老公的妹妹穿的比我還像新娘默色。我一直安慰自己,他們只是感情好阀蒂,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布该窗。 她就那樣靜靜地躺著,像睡著了一般蚤霞。 火紅的嫁衣襯著肌膚如雪酗失。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,584評(píng)論 1 312
  • 那天昧绣,我揣著相機(jī)與錄音规肴,去河邊找鬼。 笑死夜畴,一個(gè)胖子當(dāng)著我的面吹牛拖刃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贪绘,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼兑牡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了税灌?” 一聲冷哼從身側(cè)響起均函,我...
    開(kāi)封第一講書(shū)人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菱涤,沒(méi)想到半個(gè)月后苞也,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粘秆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年如迟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡殷勘,死狀恐怖此再,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情劳吠,我是刑警寧澤引润,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站痒玩,受9級(jí)特大地震影響淳附,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蠢古,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一奴曙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧草讶,春花似錦洽糟、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至嘱丢,卻和暖如春薪介,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背越驻。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工汁政, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缀旁。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓记劈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親并巍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子目木,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容