【发布时间】:2022-01-12 12:14:03
【问题描述】:
我用 Stripe 设置了我的商店。您可以购买优质产品和不同尺寸的产品。它运作良好,直到我必须向卖家发送一封电子邮件,其中包含一些信息,如购买的产品名称、产品尺寸(product.nickname)、客户信息等。我的问题是我无法获得这个“昵称”。
据我在 Stripe 中了解,您有一些产品可以有不同的价格。对我来说,我有一个有 3 个价格的产品。每个价格都有自己的 ID 和“标签”(根据我在请求中看到的 Stripe 称为“昵称”)。当我想检索此 ID 以获取特定昵称(如果大小的名称)时,问题就来了。出于某种原因,为所选产品返回的 ID 与来自 Stripe Dashboard 的 ID 不同。每次我购买新商品时,都会返回此 ID 更改。
在我的 WebhooksController 中定义创建:
case event.type
when 'checkout.session.completed'
session = event.data.object
@order = Stripe::Checkout::Session.retrieve({ id: session.id, expand: ["line_items", "customer"]})
OrderMailer.order_mail(@order).deliver
end
render json: { message: 'success' }
在我的 order_mail.html.erb 中:
<% @order.line_items.data.each do |line| %>
<%= line %>
<% end %>
谁能解释一下为什么 webhook 中返回的 line_item ID 与 Stripe 仪表板 ID 不同?以及如何获取和显示邮件中所选价格的昵称?
这是我得到的<%= line %>
{ "id": "li_1K41JPFE4oPSz5YO98K2r2CW", "object": "item", "amount_subtotal": 4000, "amount_total": 4000, "currency": "eur", "description": "Soleil Levant", "price": { "id": "price_1K41JPFE4oPSz5YORWdXXGuT", "object": "price", "active": false, "billing_scheme": "per_unit", "created": 1638874459, "currency": "eur", "livemode": false, "lookup_key": null, "metadata": { }, "nickname": null, "product": "prod_KjUHP8uALE6aZI", "recurring": null, "tax_behavior": "unspecified", "tiers_mode": null, "transform_quantity": null, "type": "one_time", "unit_amount": 4000, "unit_amount_decimal": "4000" }, "quantity": 1 }
如果我的价格合适:
https://api.stripe.com/v1/prices/price_1JxC8kFE4oPSz5YOc391IZ9I\
-u sk_test_51JbmGvFE4oPSz5YOsl0JTTEi0quapEwPBXQsQRbRXPdr38hSiyVDPs9LnkH4nHCGXqwoYjOTnHoH6FtIC4EP32pr00KHIxFlLp:
我知道了:
{
"id": "price_1JxC8kFE4oPSz5YOc391IZ9I",
"object": "price",
"active": true,
"billing_scheme": "per_unit",
"created": 1637247786,
"currency": "eur",
"livemode": false,
"lookup_key": null,
"metadata": {
"nickname": "S"
},
"nickname": "S",
"product": "prod_KcR0HgpfzldOj8",
"recurring": null,
"tax_behavior": "unspecified",
"tiers_mode": null,
"transform_quantity": null,
"type": "one_time",
"unit_amount": 4000,
"unit_amount_decimal": "4000"
}
【问题讨论】:
标签: ruby-on-rails stripe-payments