- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
Stripe 连接帐户可配置为以常规方式合并支出 payout schedule ,例如在我们的案例中用于每月支付。对于这些每月付款,我们需要向账户所有者解释我们平台上的哪些交易(在我们的案例中是预订和退款)产生了他们收到的总金额。我们将 strip 费用 ID(resp. refund id)存储在我们数据库的预订(resp refund)对象中。因此问题归结为:
给定一个 stripe 帐户 ID,您如何获得对上次付款有贡献的 stripe 费用和退款 ID 的列表?
最佳答案
我已经与 Stripe 的支持团队进行了广泛的交流,并且有几 block 拼图是到达那里所必需的:
如果您 query stripe for a list of payouts ,您将只会收到您作为平台所有者从 stripe 获得的支付对象。要获取特定帐户的支付对象,您可以使用平台的正常身份验证,但 send the stripe account id as a header 。因此,获得最后一笔支出的代码片段如下所示(我将使用 ruby 片段作为其余答案的示例):
Stripe::Payout.list({limit: 1}, {stripe_account: 'acct_0000001234567890aBcDeFgH'})
=> #<Stripe::ListObject:0x0123456789ab> JSON: {
"object": "list",
"data": [
{"id":"po_1000001234567890aBcDeFgH",
"object":"payout",
"amount":53102,
"arrival_date":1504000000,
"balance_transaction":"txn_2000001234567890aBcDeFgH",
"created":1504000000,
"currency":"eur",
"description":"STRIPE TRANSFER",
"destination":"ba_3000001234567890aBcDeFgH",
"failure_balance_transaction":null,
"failure_code":null,
"failure_message":null,
"livemode":true,"metadata":{},
"method":"standard",
"source_type":"card",
"statement_descriptor":"[…]",
"status":"paid",
"type":"bank_account"
}
],
"has_more": true,
"url": "/v1/payouts"
}
有了payout id,我们可以查询balance transactions, scoped to a payout的列表:
Stripe::BalanceTransaction.all({
payout: 'po_1000001234567890aBcDeFgH',
limit: 2,
}, {
stripe_account: 'acct_0000001234567890aBcDeFgH'
})
即使您现在拥有支付 ID,该对象的范围仍仅限于帐户,您无法以平台所有者身份检索它。但是作为一个帐户,支出只显示像这样的伪收费和退款对象(注意第二笔交易有一个 py_7000001234567890aBcDeFgH
对象作为源而不是常规的 ch_
收费对象):
Stripe::BalanceTransaction.all({
payout: 'po_1000001234567890aBcDeFgH',
limit: 2,
}, {
stripe_account: 'acct_0000001234567890aBcDeFgH'
})
=> {
:object => "list",
:data => [
{
:id => "txn_4000001234567890aBcDeFgH",
:object => "balance_transaction",
:amount => -53102,
:available_on => 1504000000,
:created => 1504000000,
:currency => "eur",
:description => "STRIPE TRANSFER",
:fee => 0,
:fee_details => [],
:net => -53102,
:source => "po_5000001234567890aBcDeFgH",
:status => "available",
:type => "payout"
},
{
:id => "txn_6000001234567890aBcDeFgH",
:object => "balance_transaction",
:amount => 513,
:available_on => 1504000000,
:created => 1504000000,
:currency => "eur",
:description => nil,
:fee => 0,
:fee_details => [],
:net => 513,
:source => "py_7000001234567890aBcDeFgH",
:status => "available",
:type => "payment"
}
],
:has_more => true,
:url => "/v1/balance/history"
}
As an additional parameter, you can give stripe paths of objects which you want stripe to expand in their response. 因此我们可以通过传输从伪对象回到原始电荷对象:
Stripe::BalanceTransaction.all({
payout: 'po_1000001234567890aBcDeFgH',
limit: 2,
expand:['data.source.source_transfer',]
}, {
stripe_account: 'acct_0000001234567890aBcDeFgH'
}).data.second.source.source_transfer.source_transaction
=> "ch_8000001234567890aBcDeFgH"
如果您想处理整个列表,您需要消除 source.object
属性之间的歧义:
Stripe::BalanceTransaction.all({
payout: 'po_1000001234567890aBcDeFgH',
limit: 2,
expand:['data.source.source_transfer',]
}, {
stripe_account: 'acct_0000001234567890aBcDeFgH'
}).data.map do |bt|
if bt.source.object == 'charge'
['charge', bt.source.source_transfer.source_transaction]
else
[bt.source.object]
end
end
=> [["payout"], ["charge", "ch_8000001234567890aBcDeFgH"]]
不幸的是,目前无法从 BalanceTransaction 列表调用返回的伪 pyr_
中获取原始 re_
对象以进行退款交易。我发现的最佳替代方法是通过 data.source.charge.source_transfer.source_transaction
路径获取发出退款的费用的费用 ID,并将其与pyr_
的 created
属性以匹配我们的数据库退款对象。不过,我不确定这种方法到底有多稳定。提取该数据的代码:
Stripe::BalanceTransaction.all({
payout: 'po_1000001234567890aBcDeFgH',
limit: 100, # max page size, the code to iterate over all pages is TBD
expand: [
'data.source.source_transfer', # For charges
'data.source.charge.source_transfer', # For refunds
]
}, {
stripe_account: 'acct_0000001234567890aBcDeFgH'
}).data.map do |bt|
res = case bt.source.object
when 'charge'
{
charge_id: bt.source.source_transfer.source_transaction
}
when 'refund'
{
charge_id: bt.source.charge.source_transfer.source_transaction
}
else
{}
end
res.merge(type: bt.source.object, amount: bt.amount, created: bt.created)
end
关于ruby - 如何获取自动付款的原始费用和退款 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46296374/
我有一个问题,多次执行 ActorSystem system = ActorSystem.create("System"); 是否会提高生产力,或者我必须执行一次并使用一个引用? 最佳答案 您应该仅创
我希望学生能够在收到付款请求之前访问 Moodle 中的前几节课。我在 Google 上搜索了好久,但一无所获,还搜索了我在这里能想到的所有可能的术语,但还是没有找到。因此,对于缺乏贡献的研究/证据,
有什么方法可以用 PHP 分摊 paypal 费用吗?我希望 90% 转到一个帐户,10% 转到另一个帐户,但是当向此人收费时,它看起来应该只是转到 10% 的帐户。我希望使用 IPN 向此人收费。无
在使用 Adaptive Payment API 完成链式或并行支付的情况下,我有一个关于 Paypal 如何计算适用于每个接收方的费用的答案。 费用是按发件人支付的总金额计算的吗?在这种情况下,每个
SINCH 是否会对双方(调用者和接收者)的通信收费? 正如我所见,如果我使用 SINCH 执行应用到应用的通话,那么我的通话时间将从通话双方的通话时间中扣除。 我知道 sinch 允许 2500 分
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭13 年前。 Improve th
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我一直在尝试将 hr_expenses 表单中的某些字段复制到我的自定义模块purchase_orders 中。 下面的方法是为我在扩展的 hr_expenses.py 文件中执行此操作而编写的: d
Paypal 费用是否适用于其 API 内的任何调用或特定调用? 例如,如果我在/billing-agreements api 中使用任何调用,我是否会被收取 2.9% 或更少的费用,外加每笔交易 0
在 Woocommerce 中,我们试图在通过 Paypal 支付网关购买商品时向订单添加额外费用。 我们通过这种方式更改了发送到 Paypal 的价格: add_filter('woocommerc
我正在尝试设置 Stripe Connect 并且需要 首先通过创建客户向买家收费, 然后生成一个token,最后 使用此 token 向客户收费。 只要买家和卖家不是 Stripe Connect
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
使用 .NET 库如何确定查询的 RU 费用。它返回 IQueryable,我不知道如何记录它。如何记录所有请求的 RU 的奖励积分。 简单的代码但不返回 RU: var docs = Docume
我有一个有一些购买选项的应用程序。但是,我不想通过应用程序本身来实现它。为此,我已经有一个购买网站。 那么我可以创建一个从我的应用程序到相应网页的重定向页面吗? 我的应用程序会被拒绝吗? 或者有更好的
我正在尝试弄清楚如何(粗略地)计算我正在考虑创建的某些工作角色的预期成本。 TLDR; 如果您的工作人员Sleep(someTime)/Sleeping,azure 是否会向您收取 $$ 费用? 详细
我是 Lambda 的新手,正在尝试了解如何在 Lambda 函数中处理 Stripe charge。 我的应用程序从 Stripe API 创建 token ,现在我需要将该 token 发送到 L
我为管理用户使用easyui表,我正确添加了所有脚本,但是与jquery.easyui.min.js发生冲突我尝试消除所有js以查看是否有效,但是,它不起作用,所以不是js冲突。 有人遇到过类似的问题
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
有谁知道是否有公开可用的 PayPal 资源可以让我在我的 Magento 代码中计算交易费用? 例如,如果有人以 1.00 美元的价格购买东西,我想知道其中的 0.15 美元是否是 PayPal 费
我只是想知道是否有办法检索 strip 中多个 charges_id 的费用。 例如在 docs展示如何获得一次充电。但是我们需要多次收费。所以,我们不想多次调用 stripe 方法 retrieve
我是一名优秀的程序员,十分优秀!