第三方支付原理簡介
-
第三方支付原理
首先在第三方支付平臺注冊一個商戶賬戶,支付平臺會為你分配一個商戶id,這個商戶id很重要,而且需要和第三方支付平臺之間有一個商戶密鑰,用于發生交易時進行校驗,在發生支付操作時用到。在支付發生時,從網站(或App)的支付頁面跳轉到第三方支付平臺,跳轉時會帶著一系列參數,包含了一個處理支付之后的回調地址,在第三方支付平臺登錄并完成支付之后,再跳轉回原網站,跳轉到之前傳到支付平臺的回調地址,在跳轉到回調頁面時,進行判斷是否支付成功,如果支付成功,執行相應的操作,反之,執行其他的操作。
-
搭建模擬支付環境
在這里下載模擬器,模擬器是用的ASP.NET寫的(不知道誰寫的,第一次見是傳智播客,有可能是楊中科老師寫的),下載之后,配置IIS或者使用CassiniDev小型IIS服務器將這個文件夾作為一個網站運行起來,我的示例中是配置在了IIS上,需要CassiniDev的可以在這里下載,配置好網站之后,模擬環境基本搭建完成。除此之外,為清楚的看到支付時的頁面跳轉,配置IIS時配置主機指向alipay.com,然后網站首頁的地址就是alipay.com:8088了,如果要更改主機指向的話這樣配置還不夠,還需要修改hosts文件,增加alipay到127.0.0.1, hosts文件位于 c:\windows\system32\drivers\etc\ 目錄下
模擬器首頁如下圖
-
實現支付寶模擬支付
支付寶支付文檔說明
網關地址(支付網關地址/接入地址) http://alipay.com:8080/AliPay/PayGate.ashx
網關參數說明:
partner:商戶編號 1 --
return_url:回調商戶地址(通過商戶網站的哪個頁面來通知支付成功!)1 --
subject:商品名稱
body:商品描述
out_trade_no:訂單號!!!(由商戶網站生成,支付寶不確保正確性,只負責轉發。)
total_fee:總金額
seller_email:賣家郵箱1--
sign:數字簽名。為按順序連接 總金額、 商戶編號、訂單號、商品名稱、商戶密鑰的MD5值。(小寫值)
支付結果返回給 return_url 指定的網址.傳回的參數如下:
回調商戶接口地址參數說明:
out_trade_no:訂單號。給PayGate.ashx傳過去的out_trade_no再傳回來
returncode:返回碼,字符串。ok為支付成功,error為支付失敗。
total_fee:支付金額
sign:數字簽名。為按順序連接 訂單號、返回碼、支付金額、商戶密鑰為新字符串的MD5值。
測試商戶名稱:APlus
商戶編號:4
商戶密鑰:aaaaaa
(每個商戶的密鑰是商戶自己設置的,每個人的都不一樣,只有支付寶和商戶知道,所以無法猜測、假冒)
數據保存在App_Data目錄下的Access數據庫中,可以自行添加或修改
-
實現網銀在線模擬支付
網關地址http://alipay.com:8088/ChinaBank/PayGate.ashx
網關參數說明:
v_mid:商戶編號
v_oid:訂單號
v_amount:總金額
v_moneytype:幣種。0為人民幣,1為外幣。
v_url:回調商戶地址
v_md5info:數字簽名。為按順序連接 總金額、幣種、訂單號、商戶編號、商戶密鑰為新字符串的MD5值。
style:網關模式:0(普通列表),2(銀行列表中帶外卡)
remark1:備注1。可空。
remark2:備注2。可空。
回調商戶接口地址參數說明:
v_oid:訂單號
v_pmode:支付銀行。目前值衡為0.
v_pstatus:支付結果。20為成功,30為支付失敗
v_amount:總金額
v_moneytype:幣種。0為人民幣,1為外幣。
remark1:傳遞的備注1。
remark2:傳遞的備注1。
v_md5str:數字簽名。為按順序連接 訂單號、支付結果、總金額、幣種、商戶密鑰為新字符串的MD5值。
測試商戶名稱:APlus
商戶編號:4
商戶密鑰:aaaaaa
文章列表