2017-01-24 49 views
1

我正在使用條紋創建導軌應用程序。我只能使用standalone accounts,因爲託管帳戶在法國不可用。我使用shared customers,因爲在我的應用中賺錢的人正在分享他們的客戶。條紋標記未在條紋服務器中創建

Create Card Token doc

當然,我所展示給你使用我的測試條紋環境。

給客戶的用戶收費,我創建令牌:

tok = Stripe::Token.create(
    {:customer => customer.id, :card => customer.cards.last.stripe_id}, 
    {:stripe_account => user.stripe_user_id} 
) 
=> #<Stripe::Token:0x3fd9c3830900 id=tok_19fYblIUbyeToO5BfgwmLR9Y> JSON: { 
    "id": "tok_19fYblIUbyeToO5BfgwmLR9Y", 
    "object": "token", 
    "card":  {"id":"card_19fYblIUbyeToO5BwRTTlJ1x","object":"card","address_city":null,"address_country":null,"address_line1":null,"address_line1_check":null,"address_line2":null,"address_state":null,"address_zip":null,"address_zip_check":null,"brand":"Visa","country":"US","cvc_check":"pass","dynamic_last4":null,"exp_month":12,"exp_year":2020,"fingerprint":"xxsPLKbXK7swE7It","funding":"credit","last4":"4242","metadata":{},"name":null,"tokenization_method":null}, 
    "client_ip": "31.33.230.61", 
    "created": 1485280889, 
    "livemode": false, 
    "type": "card", 
    "used": false 
} 

在那之後,我想使用該令牌,但不幸的是,令牌不上條紋服務器存在向客戶收取:

Stripe::Token.retrieve(tok.id) 
Stripe::InvalidRequestError: No such token: tok_19fYk2IUbyeToO5Bo4thhjn7 
from /usr/local/var/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/stripe-1.58.0/lib/stripe.rb:326:in `handle_api_error' 

當我嘗試向客戶收費或將令牌存儲爲客戶來源時,它給了我同樣的錯誤。 我試圖創建一個基本的費用,看它是否是從一個規模較大的錯誤:

tok = Stripe::Token.create(
    :card => { 
    :number => "4242424242424242", 
    :exp_month => 1, 
    :exp_year => 2018, 
    :cvc => "314" 
    }, 
) 
=> #<Stripe::Token:0x3fd9c71b002c id=tok_19fYWGLTk1qRIoGhSApzxo8u> JSON: { 
    "id": "tok_19fYWGLTk1qRIoGhSApzxo8u", 
    "object": "token", 
    "card": {"id":"card_19fYWGLTk1qRIoGhBpLf7sFp","object":"card","address_city":null,"address_country":null,"address_line1":null,"address_line1_check":null,"address_line2":null,"address_state":null,"address_zip":null,"address_zip_check":null,"brand":"Visa","country":"US","cvc_check":"unchecked","dynamic_last4":null,"exp_month":1,"exp_year":2018,"fingerprint":"D6Dfg1vPHxjxX2XI","funding":"credit","last4":"4242","metadata":{},"name":null,"tokenization_method":null}, 
    "client_ip": "31.33.230.61", 
    "created": 1485280548, 
    "livemode": false, 
    "type": "card", 
    "used": false 
} 

但當時我能夠檢索令牌:

Stripe::Token.retrieve(tok.id) 
=> #<Stripe::Token:0x3fd9c2726b3c id=tok_19fYWGLTk1qRIoGhSApzxo8u> JSON: { 
    "id": "tok_19fYWGLTk1qRIoGhSApzxo8u", 
    "object": "token", 
    "card": {"id":"card_19fYWGLTk1qRIoGhBpLf7sFp","object":"card","address_city":null,"address_country":null,"address_line1":null,"address_line1_check":null,"address_line2":null,"address_state":null,"address_zip":null,"address_zip_check":null,"brand":"Visa","country":"US","cvc_check":"unchecked","dynamic_last4":null,"exp_month":1,"exp_year":2018,"fingerprint":"D6Dfg1vPHxjxX2XI","funding":"credit","last4":"4242","metadata":{},"name":null,"tokenization_method":null}, 
    "client_ip": "31.33.230.61", 
    "created": 1485280548, 
    "livemode": false, 
    "type": "card", 
    "used": false 
} 

它根本不當我將顧客作爲參數傳遞時,工作爲什麼?我不知道,因爲我做了它,因爲文檔告訴我。

回答

3

標記是使用Stripe-Account標題創建的,因此生成的標記對象位於目標帳戶上。

因此,爲了retrieve the token或在API請求中使用它,請求還必須使用具有相同帳戶ID的Stripe-Account標頭。

+1

你是最棒的! :D謝謝! – Charlon

+0

非常歡迎:) – Ywain