日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

商户网站使用第三方支付的大致原理和实现

發布時間:2023/12/13 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 商户网站使用第三方支付的大致原理和实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果把商戶網站使用第三方支付平臺(比如支付寶)的原理搞清楚,那編程就變得簡單多了。


整個過程大致這樣:

?

1、商戶與支付寶簽約。
2、在商戶網站購買商品,填寫數量,確定購買后跳轉到結賬頁面。結賬頁面可能包括訂單號、定單狀態(已支付/未支付)、收貨人信息、配送方式、定單金額、配送費用、總金額、支付方式、結賬按鈕,等等。
3、當點擊"結賬"按鈕,會重定向到支付寶付款頁面。而在后臺,實際上是把數據提交到支付寶一個接收支付信息的網關,比如是http://www.zhifubao.com:6060/AliPay/PayGate.ashx,然后再重定向到支付寶付款頁面。
4、付款成功后,重定向到商戶用來顯示支付成功的一個頁面,該頁面可以顯示定單編號、總金額等信息。


其中有幾個關鍵之處:

?

1、明確支付寶支付網關所需要的url格式

?

比如類似"http://www.zhifubao.com:6060/AliPay/PayGate.ashx?partner=18&return_url=http%....%"這樣的格式,那么,編程的時候應該嚴格按照這種格式來拼接字符串。

?

2、明確在支付寶支付成功后重定向到商戶支付成功頁的url中,支付寶給我們反饋的url參數

?

支付寶反饋的格式類似"http://localhost:1746/Shop/PayCallBack.aspx?out_trade_no=222&returncode=ok&total_fee=400&sign=ddddddd+md5值"這樣,我們可以使用Request[key],取出對應的部分,比如定單編號,定單金額,等等。

?

3、在向支付寶網關提交數據的時候,支付寶要求其中一個參數sign必須是MD5值

?

這個MD5值是把商戶編號、支付成功顯示頁面、商戶密匙等信息按照固定的順序進行MD5加密獲得。商戶密匙一般都可以在支付寶后臺設置。

?

4、在支付寶支付成功后重定向到商戶支付成功頁的url中,有一個sign參數也包含了MD5值

?

這個MD5值是把定單編號、返回地址、總金額、商戶密匙等信息按照固定的順序進行MD5加密獲得,編碼的時候,我們需要重新根據定單編號、返回地址、總金額、商戶密匙等信息按照固定的順序進行MD5加密獲得一個值,兩個值比較,如果相等,就說明沒有篡改,支付成功。

?

5、明確支付寶支付網關地址

?

這個地址用來接收來自商戶的信息,類似這樣:http://www.zhifubao.com:6060/AliPay/PayGate.ashx?partner=18&return_url=http%....%


支付寶接口提供的信息大致如下:

?

支付網關地址:

?

http://www.zhifubao.com:6060/AliPay/PayGate.ashx

?

支付網關參數:

?

Partner:商戶編號
return_url:支付成功地址
subject:商品名稱
body:商品描述
out_trade_no:訂單號,由商戶網站生成
total_fee:總金額
seller_email:賣家郵箱
sign:數字簽名,總金額、商戶編號、訂單號、商品名稱、商戶密匙順序連接獲得的MD5值

?

回調商戶地址:

?

out_trade_no:訂單號
returncode:返回碼,ok或error
total_fee:支付金額
sign:數字簽名,訂單號、返回碼、支付金額、商戶密匙順序連接獲得的MD5值

?

搞清了原理,編碼變得簡單。

?

當點擊支付:

?

string md5Str = SomeCommonHelper.GetMD5("總金額","商戶編號","訂單號","商品名稱","商戶密匙"); string url = "http://www.zhifubao.com:6060/AliPay/PayGate.ashx?partner=商戶編號&return_url=" + Server.UrlEncode("http://...商戶支付成功顯示頁面") + "&subject=" + Server.UrlEncode(商品名稱) + "&body=" + 商品描述 + "&out_rade_no=" + 商品編號 + "&total_fee=" + 總金額 + "&seller_email=" + 商戶郵箱 + "&sign=" + md5Str; Response.Redirect(url);

?

支付成功顯示頁面:

?

string out_trade_no = Request["out_trade_no"]; string returncode = Request["returncode"]; string total_fee = Request["total_fee"]; string sign = Request["sign"]; //自己算MD5值 string myMD5 = SomeCommonHelper.GetMD5(out_trade_no + returncode + total_fee + "商戶密匙"); if(sign != myMD5){ Response.Write("支付失敗"); } else{ Response.Write("支付成功"); }

?

就這樣。

轉載于:https://www.cnblogs.com/darrenji/p/4390455.html

總結

以上是生活随笔為你收集整理的商户网站使用第三方支付的大致原理和实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。