March 3, 2015

支付寶即時到帳串接小記

先說個結論:要用公司的帳號透過工人智慧申請的方式去開通「即時到帳」,取得 PID 之後才能開發。開發階段沒有 sandbox 可用,要用真正的個人帳號以每次 0.01 元的消費方式來測試。當然財力雄厚的人,想要用 100 元也可以啦。

前些日子接到需求要接上支付寶的金流。在此之前我只有很爽地直接用 tka 接好的 paypal,測試的時候用一組測試卡號「盡量刷」,享受那種刷卡不用付錢的精神富裕。

這是頭一次接金流,還要用中國的支付寶。

我對支付寶的認識就是:「嗯,很大間的公司」,還要搜尋一下才能確認是馬雲的東西,我對馬雲最大的認識就是經常在 Facebook 看見他的照片及勉勵小語,好比「他媽的這根本不是我說的話」。

 接完了回頭看其實也沒啥,反正阿宅就是看完文件把路打通,每個人都會。只是一些準備工作比較讓人摸不著頭緒,這邊稍微紀錄一下,給需要的人一點幫助。

我接的金流是「即時到帳」(Direct Pay),在自家的網站上以 sign 過的資料產生一個 link,user 點下 link 之後就會被導到 alipay 的網站,在 alipay 登入 user 自己的帳戶之後就會看到對應的訂單,選擇付款之後,錢就會直接從 user 的帳戶轉到自己網站的帳戶。

假設你是一位要開發這個功能的技術宅,那麼你需要準備這些東西,有這些就能安心開發了
  • 一個可以付款的一般帳號
  • 一個可以收款,且申請了即時到帳功能的公司帳號,需要的帳戶資訊包括
    • seller email:就是這個公司帳號的 email
    • PID
    • Key
 request 都是送到 https://mapi.alipay.com/gateway.do,內容填什麼看文件就好了。



一開始連需要什麼功能都不知道,摸索了一下確定自己需要的是即時到帳。以為在這個飛機滿天飛,一堆人早上在台北吃早餐,中午在日本吃拉麵的年代,搜尋 "alipay api" 找到的支付寶開放平台以為就能開工,其實根本用不到。

因為 paypal 刷得很開心,以為 Sandbox 可以有相同體驗,後來才知道根本不行。

支付寶上頭找不到客服的 email,也許是國情不同,他們流行用線上客服。在上班時間排隊了一個小時之後終於轉到技術客服,還要用 cconv 轉成簡體發問

「我要開發即時到帳,一定要簽約完後才能開始開發嗎」『對』
「Sandbox 能用嗎?」『那個沒用,要用帳號每次消費 0.01 測試吧』

回頭想想不管是 Sandbox 或是 API website,都寫著「支付寶開放平台」,跟我要做的東西一點關係都沒有,是我自己充滿了過份美好的想像。

如果你是用 nodejs 開發的人,收 notification 的時候可能會遇到 req 沒有 body 的情況,請參考這篇 nodejs 集成支付宝能收到 notify 请求但收不到 notify 数据,也許是平常有牽老奶奶過馬路,這篇發問與解答正好出現在我撞牆的前一天,省去了很多冤枉時間。(具體錯在哪一行 code 我現在懶得找,歡迎大德補完)(如果是日本的金流我應該就會很認真找了 >/////<)

其實也就是那一篇讓我覺得:「啊,好險他們有寫,真感謝他們 <(_ _)>」。剛剛洗澡的時候也覺得自己也要來稍微整理一下,搞不好可以幫到哪位跟我一樣沒有頭緒的人:如果你的需求跟我一樣,那你只要/必須要準備好上面的東西,才能/就能放心開工了。

後來,Ly 說是 Paypal 比較先進,不是支付寶太落後,大部分的金流都跟支付寶一樣。

唉...

No comments:

Post a Comment