[英]How to use Stripe Connect in an iOS app
有沒有人成功使用Stripe連接iOS應用程序。 我有幾個問題:
我遵循這些指南: https : //stripe.com/docs/connect/getting-started
注冊應用程序:這里很簡單,沒問題
然后再往下走一點:
將您的用戶發送到Stripe:再次,這里沒問題,我只需要一個按鈕,在UIWebView中打開鏈接。 我假設URL中的client_id很好嗎? 我的很多不確定性是我應該在應用程序中硬編碼的ID /密鑰
然后再往下走一點:
用戶連接或創建Stripe帳戶后,我們會將它們重定向回您在應用程序設置中使用代碼參數或錯誤設置的redirect_uri。
我在這里做的是使用UIWebview的webView:shouldStartLoadWithReqest:navigationType委托方法來檢查URL中的字符串“code =”。 如果它找到了,那么我就能抓住“代碼”參數。 所以實際上,redirect_uri對我來說完全沒必要。 這是處理這個問題的正確方法嗎? 我應該在我的應用程序內還是在我的服務器上執行此操作?
收到代碼后,我們應該進行POST調用以接收access_token。 再次,這應該在應用程序內還是在服務器上完成? 它需要使用secret_key,所以我猜服務器? 如果需要將令牌發送到服務器,如何發送信用卡信息以及此令牌? 我知道如何獲得卡號,exp日期和CVV。 但是將它傳遞給服務器(有或沒有令牌)是我不確定的。
然后,當涉及到在服務器上實際編寫PHP,Ruby或Python代碼時,我完全失去了。
任何幫助將不勝感激。
您應該設置一個小型Web應用程序來創建條帶費用並為您存儲客戶授權代碼。 在您的Web應用程序中為redirect_uri
和webhook_uri
配置兩個路由,並在Stripe Apps設置中添加URL。 收費應該從服務器端應用程序創建,因為它需要secret_key / authorization_code,不應該存儲在iPad應用程序中。 否則他們可能會導致安全漏洞。 我試圖描述以下概念:
在應用程序中提供stripe connect button
,並將鏈接設置為在Safari中打開(不在Web視圖中)。 您應該向URL添加一個state
參數,其id
對您的用戶是唯一的。
點擊按鈕后,您的用戶將被重定向到Stripe,在那里他/她將被要求授權您的應用程序。 授權后,條帶將使用authorization_code
和您之前提供的state
命中redirect_uri
。 根據Stripe Documentation使用authorization_code
進行一次post調用以獲取access_token
。 將與state
映射的access_token
存儲在數據庫中。
在您的應用中定義自定義網址方案。 從您的網絡應用調用自定義網址。 用戶應該在移動游獵中打開網址。 因此,調用自定義URL將重新打開您的應用程序。 您可以傳遞其他參數以指示失敗/成功。 在您的應用中,根據此參數更新視圖。
現在,您已准備好代表iPad用戶在服務器上創建費用。 使用條帶iOS sdk從卡信息生成card_token
。 它需要你的條紋publishable_key
。 然后在您的Web應用程序中定義一個api,它包含3個參數: card_token
, user_id
和amount
。 無論何時想要收費,都可以從iPad應用程序中調用此api。 如果您擔心使用任何標准加密方法的安全性,也可以使用密鑰加密此信息。 您可以輕松解密網絡應用中的信息,因為您知道密鑰。
當從iPad應用程序調用此API時,您將收到user_id
(您之前保存為state
), card_token
和amount
。 檢索映射到user_id
(或state)的access_token
。 然后,您可以使用access_token
, card_token
和amount
代表用戶card_token
amount
。
您可以在服務器中使用ruby / php / python / node,因為Stripe為它們提供了sdk。 我假設可以使用其他語言,還有一個REST接口。
請注意,這只是一個概念。 它應該像它一樣工作,但我還沒有實現它。 我完成后,我會用示例代碼更新這個答案。
您可以使用UIWebView。 您仍然需要使用重定向URL並使用委托“webView:shouldStartLoadWithRequest:navigationType:”監視重定向。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.