#java #spring #stripe-payments
#java #весна #stripe-платежи
Вопрос:
У меня есть две подключенные учетные записи stripe, и я перевел тестовый кредит на одну учетную запись. переданная сумма равна 180 USD
и общая сумма равна 200 USD
. вот код на стороне Java для перевода суммы.
for (Transaction transaction: paymentRequest.getTransactions()) {
TransferCreateParams transferParams =
TransferCreateParams.builder()
.setAmount((long)transaction.getAmount().doubleValue()*100)
.setCurrency(obj.get().getBaseCurrency())
.setDestination(obj.get().getStripeAccountId())
.setTransferGroup(transferGroup)
.build();
Transfer transfer = Transfer.create(transferParams);
}
ниже то, что я отправил из интерфейса.
{
"chargeToken": "tok_1K3zdzIGcHfAoRtZLxzlv56B",
"order": {
"totalPrice": {
"amount": 200,
"currency": "USD"
}
},
"transactions": [
{
"id": "85a63a05-08b4-4e8c-9c57-78a3e80ca32c",
"amount": 180
}
]}
вот данные платежных реквизитов стороны stripe
но когда я проверяю раздел подключенной учетной записи, он показывает 181.30 USD
.
Я не знаю, как это произошло. надеюсь, ваша поддержка решит эту проблему. Спасибо!
Комментарии:
1. Это похоже на то, что следует учитывать при поддержке разработчиков Stripe (если таковая существует).
2. Вероятной причиной этого являются курсы валют. Валюта представления для начисления была
USD
. Этот платеж был преобразован вEUR
as (я предполагаю), что ваша учетная запись не имеет внешнегоUSD
(банковского) счета и, следовательно, не может приниматьUSD
остатки. Вы устанавливаетеcurrency: 'USD'
перевод, и, поскольку на вашей платформе нетUSD
баланса, он был бы снят (с соответствующей валютой) с вашегоEUR
баланса. Подробности об этом здесь .
Ответ №1:
хорошо, я получил ответы от службы поддержки stripe. И спасибо, что прояснили этот вопрос!
This behavior is due to the currency conversion and is expected. The value shown on the connected account list ($181.30) is an estimate when the platform and connected account currencies are different. You should use financial reports for reconciliation or reporting purposes, to know exactly how much an account has processed.
Here is how the value was derived for this testmode account:
1. We take the volume in the connected account currency (in this case, EUR260.27)
2. We convert it to use using a pinned exchange rate (currently, exchange rate as of 2021-10-05)
3. We arrive at USD 301.80
We use a pinned exchange rate to ensure that the balance/volume is consistent with what we're querying from the system that powers the filtering on this page, which is typically delayed.
Again, this does not mean that you transferred an extra $1.80 to the connected account.