如何快速對(duì)接Stripe國際支付系統(tǒng)

Stripe國際支付介紹

Stripe是由20多歲的兩兄弟Patrick Collison和John Collison創(chuàng)辦的Stripe為公司提供網(wǎng)上支付的解決方案。Stripe向服務(wù)的公司收取每筆交易的2.9%加上30美分的手續(xù)費(fèi)。

很多中國賣家想要借用stripe來實(shí)現(xiàn)建站收款,Stripe現(xiàn)在被稱為“移動(dòng)時(shí)代PayPal”。目前服務(wù)的客戶有大家熟知的facebook、Twitter、Shopify、Kickstarter、Target、Wish、Digitalocean、Pinterest、Docker、Sap這些知名公司外,Stripe還擁有大量的個(gè)體中小型客戶商戶,全球超過10萬家企業(yè)都在使用Stripe的服務(wù),平臺(tái)完成的年交易量已超10億美元。Stripe近些年發(fā)展迅猛,在國外市場(chǎng)的占有率相當(dāng)高。Stripe提供了一目了然簡(jiǎn)單的收費(fèi)方式,設(shè)計(jì)簡(jiǎn)潔的,易操作,可站內(nèi)付款的付款方式,簡(jiǎn)直具備了創(chuàng)建快速有效的移動(dòng)商務(wù)體驗(yàn)所需的一切。

Stripe介紹

Stripe專注在解決網(wǎng)絡(luò)商戶支付的問題,Stripe的產(chǎn)品涵蓋了網(wǎng)絡(luò)商戶支付的方方面面,目前來看總共分為三大產(chǎn)品(Payments、Subscription、Connect),三小產(chǎn)品(Sigma、Atlas、Radar)

Payments

Payments是Stripe最首要也是最基礎(chǔ)的產(chǎn)品。Payments提供了API以及toolkit使得開發(fā)者們可以開發(fā)適合自己的支付流程(payment flow)。Payments接受信用卡以及常見網(wǎng)絡(luò)支付方式(ACH debits,bitcoin,alipay,WeChat Pay),通過為客戶端提供符合PCI-DSS規(guī)范的token,敏感信息不會(huì)經(jīng)過客戶的服務(wù)器(免除責(zé)任)。Stripe致力于簡(jiǎn)化開發(fā)者的煩惱,集成Payments最快只需要一行javascript代碼(包括UI)。

Subscription

Subscription解決的問題是如何高效的處理周期賬單(recurring billing)。Stripe發(fā)現(xiàn)了周期賬單處理中的諸多痛點(diǎn)并給出了一體化的解決方案。Subscription可以自動(dòng)計(jì)算周期中cancel后返款數(shù)額,支持試用期以及基于使用率(usage-based)的plan。對(duì)于企業(yè)用戶,可以支持per-seat(基礎(chǔ)價(jià)格+用戶費(fèi)用*用戶量)的定價(jià)方案。另一個(gè)周期付賬的痛點(diǎn)就是信用卡過期,Subscription通過與信用卡網(wǎng)絡(luò)合作可以在舊卡過期后自動(dòng)更新新卡信息,從而避免因信用卡過期而導(dǎo)致支付失敗。

Connect

Connect服務(wù)的目標(biāo)群體是marketplace或者platform(類似于淘寶網(wǎng),ebay,eventtribe)。這類平臺(tái)的支付需求是鏈接買家跟賣家,包括一對(duì)一(比如uber),一對(duì)多(比如淘寶網(wǎng)上一個(gè)訂單來自不同商家),多對(duì)多(比如Google Play提供給所有用戶HBO,ShowTime等附加服務(wù)),資金暫存(比如支付在演唱會(huì)結(jié)束后發(fā)生,類似于支付寶的作用)。在美國平臺(tái)支付會(huì)牽涉到稅務(wù)法律方面的問題,Connect會(huì)在某些用戶收款數(shù)額超過一定臨界時(shí)通知平臺(tái)進(jìn)行相應(yīng)法律規(guī)定的流程。

Sigma

Sigma是基于該用戶在Stripe上所有已有資料而提供的數(shù)據(jù)分析產(chǎn)品。通過Sigma用戶(企業(yè))不需要自己建立復(fù)雜的pipeline來分析自己的payment數(shù)據(jù),而直接通過Stripe自身的web UI和SQL語句來進(jìn)行復(fù)雜的數(shù)據(jù)分析,快速準(zhǔn)確的進(jìn)行商業(yè)決策。

Atlas

為了幫助更多的人快速建立公司,Atlas把建立公司所有的步驟一次性負(fù)責(zé)。注冊(cè)Atlas提交一次性費(fèi)用之后,Stripe會(huì)在一周時(shí)間內(nèi)為你在Delaware注冊(cè)一家incorporation,并且在Silicon Valley Bank開通商業(yè)銀行賬戶,并且提供一次免費(fèi)法律服務(wù),另外提供附加的法律以及稅務(wù)服務(wù)。通過之前收購的Indie Hackers,Atlas還提供了創(chuàng)業(yè)家社群幫助開始創(chuàng)業(yè)的用戶快速上手

Radar

一套自研的風(fēng)控引擎系統(tǒng),幫助企業(yè)規(guī)避風(fēng)險(xiǎn)。

集成Stripe支付

在集成Stripe的支付之前,我們需要先了解一下Stripe的管理平臺(tái)。

  1. 注冊(cè)管理平臺(tái),測(cè)試環(huán)境注冊(cè)地址
  2. 成功以后在管理平臺(tái)會(huì)給我們生成一個(gè)秘鑰
  3. 請(qǐng)求時(shí)帶上此秘鑰,那么錢就會(huì)流轉(zhuǎn)到你注冊(cè)的管理平臺(tái)賬戶上
  4. 在管理平臺(tái)進(jìn)行綁定卡,就可以進(jìn)行提現(xiàn)等操作

注冊(cè)成功以后我們可以看到管理頁面如下所示,可以看到我們的秘鑰,還有資金的流轉(zhuǎn)情況等等。

image

我們選擇一個(gè)最簡(jiǎn)單的集成方式,就是集成Stripe的Chekcout頁面,只需要幾行代碼就能夠集成Stripe的支付能力。大概的流程我用時(shí)序圖表示,如下所示:

image

CheckOut頁面是Stripe提供的頁面,我們無需進(jìn)行改動(dòng)。頁面如下所示。

image

廢話不多說直接上代碼,我使用的Java進(jìn)行的集成,其中生成Session的代碼如下

@GetMapping("/pay")
@ResponseBody
public Map<String,String>  pay(HttpServletRequest httpRequest, HttpServletResponse httpResponse){
    Map<String,String> resultMap = new HashMap<>();
    try {
        Stripe.apiKey = privateKey;
        Map<String, Object> params = new HashMap<String, Object>();
        ArrayList<String> paymentMethodTypes = new ArrayList<>();
        paymentMethodTypes.add("card");
        params.put("payment_method_types", paymentMethodTypes);
        ArrayList<HashMap<String, Object>> lineItems = new ArrayList<>();
        HashMap<String, Object> lineItem = new HashMap<String, Object>();
        lineItem.put("name", "胡鵬飛測(cè)試商品");
        lineItem.put("description", "這是一個(gè)測(cè)試單描述");
        lineItem.put("amount", 500); // 支付金額
        lineItem.put("currency", "usd"); //支付幣種
        lineItem.put("quantity", 1);
        lineItems.add(lineItem);
        params.put("line_items", lineItems);
        //TODO 必須使用https 返回的回調(diào)地址
        String uuid = UUID.randomUUID().toString();
        params.put("client_reference_id", uuid);//業(yè)務(wù)系統(tǒng)唯一標(biāo)識(shí) 即訂單唯一編號(hào)
        log.info("uuid:{}",uuid);
        params.put("success_url", URLUtils.getBaseURl(httpRequest)+"/paySuccess");// 支付成功跳轉(zhuǎn)頁面
        params.put("cancel_url",  URLUtils.getBaseURl(httpRequest)+"/payError");// 支付失敗跳轉(zhuǎn)頁面
        Session session = Session.create(params);
        String sessionId = session.getId();
        log.info("sessionId :{}",session.getId());
        resultMap.put("sessionId",sessionId);
    } catch (StripeException e) {
        e.printStackTrace();
    }
    return resultMap;
}

其中商戶信息我沒有讓前端來傳,我在后臺(tái)寫死了,只是為了方便調(diào)用。可以看到生成sessionId傳給前端,然后前端做如下調(diào)用。就可以直接跳轉(zhuǎn)到checkOut頁面進(jìn)行支付了。

stripe.redirectToCheckout({
    sessionId: data.sessionId
}).then(function (result) {
    console.log(result);
});

到目前為止就這幾行代碼我們就已經(jīng)集成了Stripe的支付功能,其實(shí)Stripe支持的功能還有很多,就像我們上面介紹的還支持訂閱支付,當(dāng)然也能夠不使用它的checkout頁面,而是我們自定義的頁面,只不過稍微麻煩了點(diǎn),我這里就不介紹了,具體有需求的可以查看它的文檔里面寫的很詳細(xì)。相關(guān)文檔都在下面列出來了。

在GitHub代碼中還有相關(guān)的退款、回調(diào)等接口的信息,我這里就不一一介紹了,大家可以去github上面拉下來代碼查看一下就明白了。

相關(guān)資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 Stripe[https://stripe.com/] 是一家國外的提供支付服務(wù)的平臺(tái),可以讓商戶在自己的應(yīng)...
    青爭(zhēng)哥哥_閱讀 4,055評(píng)論 0 3
  • 內(nèi)容包括:框架、組件、測(cè)試、Apple Store、SDK、XCode、網(wǎng)站、書籍等。Swift 語言寫成的項(xiàng)目會(huì)...
    iOS_Alex閱讀 17,612評(píng)論 13 261
  • 之前有個(gè)項(xiàng)目是要做海外支付業(yè)務(wù),最后大家決定用stripe支付,但是iOS Stripe支付中文的資料很少,我看...
    Baoy的簡(jiǎn)書閱讀 6,376評(píng)論 12 10
  • 后端處理部分 后端向 stripe 服務(wù)器發(fā)起請(qǐng)求 本文 Postman 請(qǐng)求,來走支付流程 請(qǐng)求頭 Author...
    ithankzc閱讀 4,043評(píng)論 4 0
  • iOS資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列的資源整理。...
    chy1ee閱讀 9,017評(píng)論 5 83

友情鏈接更多精彩內(nèi)容