ASP.NET網站集成支付寶過程

        不久的未來,網上電子交易將成爲一種趨勢,不少商業網站都將集成電子支付功能,本篇文章結合Asp.Net技術來講明網站集成支付寶的過程。
若是網站採用GB2312編碼,要實現實物物品交易的話,首先,到支付寶官方網站 [url]www.alipay.com[/url]下載「實物物品交易服務」的支付寶開發文檔和「aspx.net實物物品交易接口(gbk)」的Demo。仔細閱讀開發文檔,文檔中主要的兩部分是實物交易接口說明和通知接口說明,在集成的時候咱們的大部分疑問均可以從文檔中獲得解答。
在集成時,貨物交易操做將涉及到如下不能爲空的參數:
Gateway – 支付寶對外接口
Service –  trade_create_by_buyer
Partner – 商家合做id
sign_type – 簽名方式
out_trade_no – 訂單流水號,由頁面時間生成的一串數字
subject – 商品名稱
body - 商品描述
quantity - 購買數量
price - 商品單價
show_url - 商品展現地址
seller_email - 賣家支付寶ID
key - 安全校驗碼(密鑰)
return_url - 頁面跳轉通知地址
notify_url - 服務器通知地址
logistics_type - 物流類型
logistics_fee - 物流費用
logistics_payment - 物流支付類型
payment_type - 支付類型
        下載的Demo中有一份寫好的接口CS文件,咱們只要調用CreatUrl方法就能夠獲得支付寶所接受的調轉地址,可是在全部的參數中,並非全部的參數的數值都是動態產生的,對固定的一個網站而言,許多參數均可以抽取出來放入web.config中,這樣作能夠適應外部參數的改變。由於部分參數寫入了web.config中,咱們將重寫CreatUrl方法,構造另一個名爲funcCreatUrl的方法。在funcCreatUrl方法中,從web.config讀取如下參數值:
Gateway – 支付寶對外接口( [url]https://www.alipay.com/cooperate/gateway.do[/url]?)
Service – trade_create_by_buyer
Partner – 商家合做id
sign_type – 簽名方式
payment_type - 支付類型
key - 安全校驗碼(密鑰)
return_url - 頁面跳轉通知
notify_url - 服務器通知地址
獲取跳轉地址的時候,傳給funcCreatUrl的參數就只剩下下面10個參數:
out_trade_no – 訂單流水號
subject – 商品名稱
body - 商品描述
price - 商品單價
show_url - 商品展現地址
seller_email - 賣家支付寶ID
logistics_type - 物流類型
logistics_fee - 物流費用
logistics_payment - 物流支付類型
quantity - 購買數量
這10個參數都是根據每一個所要出售的商品產生或購買者選定產生的動態值。
    集成支付寶的時候有兩點須要注意的:1、partner id和key須要到 [url]www.alipay.com[/url]上申請;2、注意使用一致的URL編碼方式。第二點十分重要,由於發送支付寶請求的時候,支付寶會驗證前面的參數所產生的sign值是否與傳入的sign值一致,只要有絲毫的不一樣都不能經過支付寶的驗證,下面用例子來講明。
驗證不經過時出現下面提示信息:
調試錯誤,請回到請求來源地,從新發起請求.
錯誤代碼ILLEGAL_SIGN
說明:若是您不是由於本接口集成調試而看見該錯誤提醒,請聯繫本次請求來源網站,本錯誤屬於網站集成接口的錯誤。
咱們來看看接口是如何組織加密的。 通過組織的請求字符串: Body=馬horse. &logistics_fee=0.01&logistics_payment=BUYER_PAY&logistics_type=POST&notify_url=http://127.0.0.1/manageru/Alipay_Notify.aspx&out_trade_no=20077212357&partner=2088002029290264&payment_type=1&price=0.01&quantity=1&return_url=http://127.0.0.1/manageru/Alipay_Return.aspx&seller_email=bit-4@163.com&service=trade_create_by_buyer&show_url=http://127.0.0.1/manageru/Prodcontent.aspx?sid=633203732934218750113&subject=馬 horse. 上面的字符串加上key(kuip37avpflqhb94zdbxq79cd6jlacti),用CS文件裏的GetMD5加密後會獲得相似a0b664db915c715052992086cf566e20這樣一串字符,最後發出去的請求字符串爲: body=馬 horse. &logistics_fee=0.01&logistics_payment=BUYER_PAY&logistics_type=POST&notify_url=http://127.0.0.1/manageru/Alipay_Notify.aspx&out_trade_no=20077212357&partner=2088002029290264&payment_type=1&price=0.01&quantity=1&return_url=http://127.0.0.1/manageru/Alipay_Return.aspx&seller_email=bit-4@163.com&service=trade_create_by_buyer&show_url=http://127.0.0.1/manageru/Prodcontent.aspx?sid=633203732934218750113&subject=馬 horse. &sign=a0b664db915c715052992086cf566e20&sign_type=MD5         請求發出去之後,其餘一切交易操做將在支付寶賬號內進行,網站保存的交易狀態只限於檢查請求是否成功發出,雖然文檔裏有通知接口,但支付寶論壇內傳出來的消息說這個接口已經不能被外部網絡使用了,但願支付寶能重開這個接口。
相關文章
相關標籤/搜索