詳解Python實現支付接口
如今面對N種快速支付的通道,所以在相關的支持通道的平臺中,競爭就會產生,以下的文章就是對Python支付接口的實際操作方案的具體介紹,以下就是文章的相關內容的具體介紹。忘你會有所收獲。
進入主題,今天的任務是要打通支付和支付通知接口,根據一般性規則,通過http協議的支付接口的一般設計都是,通過N個field或者查詢參數傳遞數據,其中一個是驗證串,防止篡改數據,每個申請了Python支付接口的用戶都給了一個編號,相當于用戶名,一個key,相當于密碼,用于加密防篡改字段的鹽值。
易寶的字段定義在文檔中有,這個文檔到處能下到,對發起請求的url這里文檔倒沒有什么錯,但是文檔里的例子是POST,把數據放到隱藏表單里,我這里通過構造Get的querystring的方式來發送數據。
根據文檔,首先定義數據如下:用的測試平臺的數據
- data=[
- "",
- ("p0_Cmd","Buy"),
- ("p1_MerId","10000432521"),
- ("p2_Order",transid),
- ("p3_Amt",str(fee)),
- ("p4_Cur","CNY"),
- ("p5_Pid","測試一下嘛"),
- ("p6_Pcat","test"),
- ("p7_Pdesc","test"),
- ("p8_Url","http://"),
- ("p9_SAF","1"),
- ("pa_MP","None"),
- ("pd_FrpId","ICBC-NET"),
- ("pr_NeedResponse","1"),
- ]
***個“”不是打醬油的,在下面的運算是有用處的,不要當我寫錯了忽略掉。
首先我們要根據數據來構建待加密的驗證源串,根據文檔描述也就是把每個field的值連接起來,注意,不加任何間隔符,你能猜出是如何構造這個字符串的嗎?寫這個文檔的人多半語文重修不下十次根據這段文檔***有用的一句話參看了源碼,于是把源碼里啰哩吧嗦的一大篇八股文改為一行代碼
- origin_str=reduce(lambda x,y:"%s%s"%(x,y[1]),data)
這里用了reduce函數,就是挨個取出list里的數據和下一數據累計運算,運算的方法就是把前一次運算的結果和下一個item作為參數傳給reduce的***個參數,這里是一個lambda表達式,x就是前一次運算的結果,y就是下一個item,因為表達式里默認***次運算的結果是字符串,所以這就是在data這個列表頭上的***個打醬油的””的來歷接下來需要用hmac來加密字符串,在python,我在shell里輸入
- import hmac
回車后居然還真有這個庫,省去麻煩一大堆,以上內容就是對Python支付接口是如何實現的步驟的部分介紹。
【編輯推薦】