最近開始搞一些個人支付通道的開發,方便個人不用和第三方平臺簽約就能收款,省去很多流程手續的成本。
然後翻了一下網上並沒有太多現成的技術教程,只能自己研究著搞了。
這次要分享的是利用抖音的充值介面,去分析提取出支付連結,分別包含微信原生支付的h5支付連結,和支付寶h5支付連結。
演示效果wb視訊: 微信h5支付: http://t.cn/A6xWjFuc 支付寶h5支付 http://t.cn/A6xWY5th
整個開發流程思路是以下幾步:
1.抓包分析抖音的充值的整個流程,提取關鍵的一些請求和API
2.把每個請求所需的引數整理出來,從相關的介面獲取到這些引數
3.在postman等工具中模擬請求進行測試
4.寫程式碼實現整個邏輯
下面把第一步也是最重要的一步分析邏輯在這分享一下。
充值下單介面
1.開啟網頁抖音充值頁面,抓包分析到充值抖幣的介面地址如下。
其中mobile代表了手機號,price就是支付金額,可以自定義傳入。
'https://www.douyin.com/webcast/wallet_api/diamond_buy_external_safe/?diamond_id=666666&source=5&way=0&aid=1128&mobile=' . $mobile . '&open_id=&fp=verify_kwo95axu_ZwXiLOvz_jt6N_4f2P_9mJb_TJ9MmZO7orJm&platform=iphone&customized_price=' . $price . '&extra=%7B%22domin_type%22:1%7D&guide_source=false'
2.測試發現這個介面需要用到Cookie。
不難理解cookie相當於是標識了充值發起人,然後可以給其它任何帳號充值。
直接F12開啟除錯模式找到netword下,該請求裡面請求頭中的Cookie,複製下來儲存。
在postman中測試發現返回結果如下:
{ "data": { "order_id": "10000017038524895319462912", "params": "https://tp-pay.snssdk.com/cashdesk/?app_id=800095745677&encodeType=base64&merchant_id=1200009574&out_order_no=10000017038524895319462912&return_scheme=&return_url=aHR0cHM6Ly93d3cuZG91eWluLmNvbS9wYXk/c2NlbmU9ZG91eWluX21vYmlsZQ==&sign=e51588008a7174bec265fa3c6e84a2a8&sign_type=MD5&switch=00×tamp=1638784363&total_amount=1000&trade_no=SP2021120617523129782881685348&trade_type=H5&uid=1012003520129767", "pay_type": "0" }, "extra": { "now": 1638784363134 }, "status_code": 0 }
這裡面的“params”就包含了後續步驟會用到的引數,所以要儲存下來。
3.其他介面都是類似的方式,一步一步來不要心急。
也可以從最後的結果介面往前倒推,從而拿到相應引數。
心得體驗:
1.我發現逆向分析這活就很需要耐心,有時候發現某個介面怎麼也請求不成功,再堅持調一下,加個請求頭、加個引數之類的就通了!
2.如果某一步卡住了怎麼都走不通,那最好的方式是從頭再來!從第一個請求開始,更加完善的去做前面的請求,因為有的時候你前面一步拿到的引數都是無效的,後面就無法繼續下去了!