2017-01-24 2 views
1

Я создаю приложение rails с Stripe. Я могу использовать только standalone accounts, потому что Managed Accounts недоступны во Франции. Я использую shared customers, потому что люди, зарабатывающие деньги на моем приложении, делят своих клиентов.Stripe Token не создан на сервере stripe

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 серверах:

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, в запросе также должен использоваться заголовок Stripe-Account с тем же идентификатором учетной записи.

+1

Ты лучший! : D Спасибо !!! – Charlon

+0

Ты очень рад :) – Ywain

Смежные вопросы