当客户存在时,没有这样的客户:cus_7QLGXg0dkUYWmK(Stripe :: InvalidRequestError)

时间:2015-11-26 20:17:33

标签: ruby-on-rails stripe-payments stripe-connect

我正在一个名为foodsy的电子商务市场工作。我正在使用stripe connect。已使用stripe-connect-omniauth创建已关联的帐户。 foodsy有几个客户。通过

在rails控制器中创建Sku的订单
 Stripe.api_key = "sk_test_o9YlLXk88Df4N2dmsdQtPEqZ"
    Stripe::Order.create(
      {:currency => 'usd',
      :items => [
        {
          :type => 'sku',
          :parent => "sku_7QKrhZJcqcuWBN"
        }
      ] },
    {  :stripe_account => "acct_17BTxDCioT3wKMvR" }
    )

它会创建一个ID为or_17BUNHCioT3wKMvREWdDBagG的订单。

存在于食品平台上的顾客购买它,

order=Stripe::Order.retrieve("or_17BUNHCioT3wKMvREWdDBagG",stripe_account: "acct_17BTxDCioT3wKMvR")
order.pay(customer: "cus_7QLGXg0dkUYWmK")

但是此代码返回错误No such customer: cus_7QLGXg0dkUYWmK (Stripe::InvalidRequestError).

客户存在,因为我可以在仪表板上看到他,并且源属性设置在条带上。那么为什么会出错呢?

2 个答案:

答案 0 :(得分:8)

问题是客户存在于平台的帐户中,而不是您尝试创建费用的关联帐户。

您需要从平台帐户share the customer到关联帐户:

# Create a token from the customer on the platform account
token = Stripe::Token.create(
  {:customer => "cus_7QLGXg0dkUYWmK"},
  {:stripe_account => "acct_17BTxDCioT3wKMvR"}
)

# Retrieve the order on the connected account and pay it using the token
order = Stripe::Order.retrieve("or_17BUNHCioT3wKMvREWdDBagG",
  stripe_account: "acct_17BTxDCioT3wKMvR"
)
order.pay(source: token.id)

答案 1 :(得分:2)

如果您使用了错误的APiKey,也会发生这种情况