Как получить список идентификаторов платежей для объекта выплаты CONNECTED ACCOUNT в полосе - PullRequest
0 голосов
/ 01 марта 2019

Я сохраняю идентификатор каждого сбора и связываюсь с покупкой.Я подключил учетные записи в моем приложении.Я хочу показать им разбивку покупок по выплатам.Для этого мне нужен способ получить список charge_ids для выплаты.

1 Ответ

0 голосов
/ 01 марта 2019

Я получил официальный ответ от strip, нет способа сделать это в одном запросе, но есть способ.

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());
            }
        }
    }
...