淺談電商 App 整合 Stripe 服務的心得

Eric Hsu
KKday Tech Blog
Published in
5 min readJun 9, 2018

接續文章: 做為電商 PM,我是如何選擇金流服務商?

緣起

在一個開發電商 App 的團隊中,其線上支付的流程相當重要,這將左右公司能否取得直接的營收。因此,除了找尋銀行機構及各家第三方支付服務商來進行洽談金流業務合作,使用聚合型支付服務或稱第四方支付,一次性全面支援多種支付方法,是另外一個可以快速導入金流服務的途徑。

Stripe — 線上支付平台獨角獸

Stripe 支援廣泛,從信用卡Visa/Master/Amex,iOS Apple Pay,Android Google Pay,微信支付,支付寶,到最近剛上線的 Microsoft Pay,甚至比特幣也曾支援 [註1]

手續費用

以註冊為香港店家為例,每筆信用卡交易將收取 3.4% + HK$2.35,而其他支付方法則收取 2.2% + HK$2

其信用卡手續費規則採單一費率,相比其他服務商的 Interchange++ 算法[註2],精算下來其實貴上不少,日後有機會再來分析其他服務商的手續費用

收款幣別

Stripe 可以設定的收款幣別高達 135 種之多 [註3],值得注意的是,使用 Stripe API 傳送請款金額時,需將金額 (amount) 乘以100,其中有部分貨幣是不含小數的(Zero-decimal currencies),則不必另外換算。

在開發過程中,我們遇到了不少次因為 Decimal 轉 Double 的尾數進位問題,只要是涉及錢的問題,請務必用 Decimal 定點數來運算,免得在小數點進位時,遇到多 1 少 1 的問題。

跨國交易手續費

在 App 上線後不久,我們陸續收到客訴回報 — 客戶在信用卡帳單中,被收取了跨國交易手續費。為什麼呢?原來,發卡行以及收款單位,若所屬國家不同,則持卡人是有可能被收取額外費用的,但這完全取決於發卡行決策,店家是無法事先得知的。

為此,當結帳貨幣與目前註冊店家國家(香港)不同時,則應在畫面上提醒用戶,此交易有可能收取額外費用。

當然也可以考慮將公司落地註冊在不同國家,並找尋當地的銀行或者金流業者來串接,此時就要注意當地的營業稅及所得稅是否符合成本,例如韓國的外國店家營業稅可能會高達10%。

跨平台 SDK

Stripe 提供了 RESTful API,在 API Reference 文件中,提供了 curl/Ruby/Python/PHP/Java/Node/Go 多種語言範例。

短短幾行就能寫出結帳的Web Form

<form action="your-server-side-code" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_g6do5S237ekq10r65BnxO6S0"
data-amount="999"
data-name="Stripe.com"
data-description="Example charge"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
data-locale="auto"
data-zip-code="true">
</script>
</form>

在 iOS / Android ,有提供預設的結帳 UI ,也支援客製化 UI ,並且 Open Source 的 SDK 在 Github 上。

註 1: Stripe 於 2018/01/23 宣佈停止支援 Bitcoin
註 2: Interchange++ 是根據發卡機構以及服務商在不同卡別/地區/交易金額動態調整收取的手續費
註 3: Stripe 幣別說明

結語

Stripe 提供相當多第三方套件整合、資訊報表、防偽偵測,功能完善,文件齊全,唯獨價格不菲,近期再來整理其中的功能以及 App 整合的流程。

最可惜的是,Stripe 目前沒有辦法註冊為台灣店家,造成新台幣用戶是會被收取跨國交易手續費的,因此我們已開始尋找其他金流服務來解決這個問題,這又會是另外一個故事…

待續

--

--