2016-07-13 1 views
4

나는 다음과 같은 파이썬 코드를 사용하여 스트라이프에서 요금을 생성합니다.파이썬을 사용하여 스트라이프 차지를 검색 할 수없는 것 같습니다

a_charge = stripe.Charge.create(
amount=cents, 
currency="usd", 
source=token, 
description="my_description", 
application_fee=application_fee, 
stripe_account=teacher_stripe_id 
) 

내 계기판에 charge_id가 표시되어 성공한 ​​것 같습니다. 는하지만, 직후 코드에서 다음 실패 :

오류와
stripe.Charge.retrieve(a_charge.id) 

: 그러한 요금 : 그러나

을 somelongstringhere, 내 스트라이프 대시 보드에 충전 자세한 내용은 아래의 ID 참 somelongstringhere입니다. 스트라이프가 어떻게이 요금을 검색 할 수 없습니까? 이것이 올바른 이드가 아닌가?

답변

4

충전 검색 호출이 실패하는 이유가 있어야한다. 당신이 충전 만들 때

는 :

a_charge = stripe.Charge.create(
    amount=cents, 
    currency="usd", 
    source=token, 
    description="my_description", 
    application_fee=application_fee, 
    stripe_account=teacher_stripe_id 
) 

을 당신은 요청에 Stripe-Account를 사용하는 라이브러리를 지시 stripe_account 매개 변수를 사용합니다. 이것은 Stripe의 API에 연결된 계정 중 하나를 대신하여 플랫폼이 요청을 발급했음을 알리는 데 사용됩니다.

말했다
the_same_charge = stripe.Charge.retrieve(a_charge.id, stripe_account= teacher_stripe_id) 

, 실제로이 작업을 수행하는 거의 사용이 :

그래서 요금을 검색하기 위해, 당신은 같은 stripe_account 매개 변수를 사용해야합니다. 이미 a_charge에 요금 객체가 있습니다. 위의 코드를 실행하면 a_charge == the_same_charge이됩니다. 당신없이

a_charge.refresh() 

이이 API를 쿼리합니다 (: 이미 스트라이프 개체의 인스턴스를 가지고 있고 API에서 최신 상태를 취득하고자 할 때

더 일반적으로, 당신은 refresh() 방법을 사용할 수 있습니다 stripe_account 매개 변수에 대해 걱정할 필요가 있습니다. 인스턴스는 그것에 대해 "기억"하고 백그라운드에서 사용합니다.) 인스턴스 속성을 API에서 검색 한 값으로 새로 고칩니다.

1

a_charge 내에 데이터가있는 동안 요금을 생성 한 직후에 stripe.Charge.retrieve(a.charge.id)을해야하는 이유는 무엇입니까?

데이터가 여러 서버/데이터베이스에 캐시 및/또는 브로드 캐스팅 될 수 있습니다. 새로 생성 된 데이터는 읽기에 사용할 수 있도록 몇 초가 걸릴 수 있습니다.

+0

원래 직접 다른 기능에서이 작업을 수행하고 싶지 않고 작동하지 않아 코드를 더 가깝게 이동 시켰습니다. 그러나 실제로 문제가 있다고 생각하지는 않습니다. 왜냐하면 stripe.charge.list()를 사용할 때 실제로 다른 ID를보고 있기 때문에 반환 된 것보다 다른 이유가 있습니다. – wcai

+0

반환 된 ID는 무엇입니까? 적어도 접두사는 무엇입니까? –

1

여기에서 사용중인 코드는 연결된 스트라이프 계정에 직접 요금을 청구하는 코드입니다. 이 내용은 Stripe의 설명서 here에서 다룹니다.

청구 금액이 연결된 계정에 있기 때문에 사용자의 Stripe 계정에 요금이 없으므로 직접 가져올 수는 없습니다. 이렇게하려면 헤더를 here과 같이 다시 전달해야합니다.

코드는 대신 요금이 다른 계정에서 만들었 기 때문에

the_charge = stripe.Charge.retrieve(
    id=a_charge.id, 
    stripe_account=teacher_stripe_id) 
관련 문제