我存储每个费用的ID并与购买相关联。 我已经在我的应用程序中关联了帐户。我想向他们展示每笔支出的购买明细。为此,我需要一种获取每次付款的charge_id列表的方法。
答案 0 :(得分:0)
我收到了Stripe的官方回复,在一个查询中无法做到,但是有一种方法。
1)创建费用ch_xxxx和相关交易(txn_xxxxxx) 在平台帐户上
平台收到费用后,平台帐户将创建一个 转移到关联的帐户(tr_xxxxxx)和转移对象 也在平台帐户上
2)当关联帐户收到转帐时,付款对象 将创建(py_xxxxxx)和相关交易(txn_xxxxx) 连接的帐户,这些付款交易将被分组 并以“ po_xxxxxx”支付
因此在平台帐户和关联帐户之间,从关联 帐户付款进行收费,总体流程如下:
付款(po_xxxx)->交易(txn_xxxx)->付款(py_xxxx)-> 转帐(tr_xxxx)->收费(ch_xxxxx)
public static void ListTransactionsForPayout(String payout) throws StripeException {
//1. Get a list of transactions for payout in Connected account
Map<String, Object> balancetransactionParams = new HashMap<String, Object>();
balancetransactionParams.put("limit", 20);
balancetransactionParams.put("payout", "po_1Dy8ZfKxxxxxx");
List<String> expandList = new LinkedList<String>();
expandList.add("data.source");
balancetransactionParams.put("expand", expandList);
RequestOptions requestOptions = RequestOptions.builder()
.setStripeAccount("acct_connected_account")
.build();
BalanceTransactionCollection transactions = BalanceTransaction.list(balancetransactionParams, requestOptions);
for (BalanceTransaction txn : transactions.autoPagingIterable()) {
if (txn.getType().equals("payment")) {
Charge charge = (Charge) txn.getSourceObject();
// 2. Get transfers from payment and get charge from transfer
Transfer transfer = Transfer.retrieve(charge.getSourceTransfer());
System.out.printf("txn %s -> payment %s -> transfer %s -> charge %s\n", txn.getId(), txn.getSource(), transfer.getId(), transfer.getSourceTransaction());
}
}
}