2015-10-14 115 views
0

我試圖對通過條紋費用發送的所有交易執行申請費。我創建了一個條形平臺,並將帳戶連接到它,但是每當我將應用程序費用添加到不受條形儀表板控制的費用時。條紋費用申請費

以下代碼工作並對平臺進行收費。

Stripe::setApiKey("sk_test_#platformcode"); 

Stripe_Charge::create(
array(
    "amount" => 10000, 
    "currency" => "usd", 
    "source" => $_POST['stripeToken'],  
)); 

此代碼也適用。它將全部費用發送到關聯賬戶,並向平臺收取分段費用。

Stripe::setApiKey("sk_test_#platformcode"); 

Stripe_Charge::create(
array(
    "amount" => 10000, 
    "currency" => "usd", 
    "source" => $_POST['stripeToken'], 
    "desitnation" => 'acct_#connectedaccountid'  
)); 

但是,即使它來自條紋網站,以下方法也不起作用。

Stripe::setApiKey("sk_test_#platformcode"); 

Stripe_Charge::create(
array(
    "amount" => 10000, 
    "currency" => "usd", 
    "source" => $_POST['stripeToken'], 
    "application_fee" => 1000 
),array("stripe_account" => 'acct_#connectedaccountid')); 

此代碼返回並告知支付了這筆款項的網站,但是當我在任何一個帳戶,而不是在收取的費用檢查條紋其永遠存在。

更多信息:令牌使用平臺的pk_test#platformcode。

+0

更新:系統沒有像它應該產生一個錯誤。現在是。我得到的錯誤是Stripe API方法調用的第二個參數是可選的每個請求apiKey,它必須是一個字符串。 (提示:您可以通過「Stripe :: setApiKey()」設置全局apiKey) – Jahax

回答

-1

修復:在這裏發佈答案,以便未來的人在條紋上使用應用程序費用,因爲我無法在任何地方找到答案。

代碼如下。但主要問題是您不應該使用連接帳戶ID。您應該使用將帳戶連接在一起時生成的sk_test_#代碼#。它不是平臺或連接用戶sk_test_#code#。這是Oauth在用戶連接到條帶平臺時生成的代碼。代碼也有修改。

Stripe::setApiKey("sk_test_#platformcode"); 

Stripe_Charge::create(
array(
    "amount" => 10000, 
    "currency" => "usd", 
    "source" => $_POST['stripeToken'], 
    "application_fee" => 1000 
), sk_test_#connectioncode')); 
+1

Stripe建議您傳遞帳戶ID而不是api密鑰,因爲它更容易滾動一個api密鑰incase妥協,然後必須重置所有您連接的帳戶的api鍵 –

+0

嗯..感謝您的迴應...我試圖使用acct_#connectedaccountid,但它失敗,並提供「無效的API密鑰」錯誤。我不知道該怎麼辦... – Jahax

+0

我也試過條紋幫助網站建議 ),array('stripe_account'=> acct _ #########)); 但它返回一個錯誤以下 「Stripe API方法調用的第二個參數是一個可選的每個請求apiKey,它必須是一個字符串。(提示:您可以通過設置一個全局apiKey」Stripe :: setApiKey ()「)」 – Jahax

0

使用destination參數允許您創建一個收費through the platform's account。在這種情況下,該平臺將支付Stripe的費用並負責退款和退款。

\Stripe\Stripe::setApiKey({PLATFORM_SECRET_KEY}); 
\Stripe\Charge::create(array(
    'amount' => 10000, 
    'currency' => 'usd', 
    'application_fee' => 1000, 
    'source' => $_POST['stripeToken'], 
    'destination' => {CONNECTED_STRIPE_ACCOUNT_ID} 
)); 

Authenticating as the connected account,您可以創建一個充directly on it

\Stripe\Stripe::setApiKey({PLATFORM_SECRET_KEY}); 
\Stripe\Charge::create(
    array(
    'amount' => 10000, 
    'currency' => 'usd', 
    'application_fee' => 1000, 
    'source' => $_POST['stripeToken'] 
), 
    array('stripe_account' => {CONNECTED_STRIPE_ACCOUNT_ID}) 
); 

在這兩個例子,{PLATFORM_SECRET_KEY}是平臺的祕密API密鑰(與sk_開始)和{CONNECTED_STRIPE_ACCOUNT_ID}是連接帳戶的ID(開始於​​)。

如果第二個樣本不適合您,您可能需要確保您使用的是最新版本的Stripe PHP bindings

+0

謝謝!這是條紋PHP綁定! – Jahax

+0

很高興我能幫到你! :) – Ywain

0

您應該收取與此類似

Stripe.api_key = "sk_test_BQokikJOvBiI2HlWgH4olfQ2" 

charge = Stripe::Charge.create({ 
    :amount => 1000, 
    :currency => "usd", 
    :source => "tok_visa", 
    :destination => { 
    :amount => 877, 
    :account => "{CONNECTED_STRIPE_ACCOUNT_ID}", 
    } 
}) 

這是工作的解決方案紅寶石目的地收費。 請參考此link瞭解更多關於關聯賬戶與平臺賬戶之間的資金流向

0

一般來說,在這種情況下,條帶支持申請費用。 服務不直接收取費用。 當客戶通過使用條帶進行交易的服務(或主機網站)向另一位客戶匯款時,應該存在2種收費。

第一種費用是爲條紋生成的。 另一種費用是爲服務(主機站點)生成的。

使服務(主機站點)可以從客戶中獲利。

首先,我建議你看看這個網址:https://stripe.com/docs/connect/direct-charges

它說:「直接在連接帳戶創建費用只在該賬戶報告,他們是不是在你的平臺上的儀表盤顯示,出口,或其他報告,儘管您始終可以通過API檢索這些信息。「