条带化:如何从连接的帐户中检索转帐信息

时间:2019-04-16 06:32:49

标签: php stripe-payments

我的主要帐户是英镑,而我的关联帐户是欧元。我的主要帐户先付钱,然后一定的百分比转入欧元。

如果客户用欧元付款,它将以一定的费用和汇率进入我的GBP帐户。计算佣金并将其转入欧元帐户。

我可以在EURO-> GBP兑换中查看,并且在EURO帐户中可以看到GBP-> EURO兑换。

我可以从每个帐户转帐过程中检索所有详细信息,除了最后一次在关联帐户上将其换回欧元。

这是我到目前为止尝试过的:

// To retrieve data from main GBP account
$charge = \Stripe\Charge::retrieve($charge_id);
$transfer = \Stripe\Transfer::retrieve($transfer_id);                                                           
$balance = \Stripe\BalanceTransaction::retrieve($charge['balance_transaction']);

// To retrieve data from EURO connected account
$transfer_eur= \Stripe\Transfer::retrieve($transfer_id,[                                                                             
    'account' => $eur_acc_number                                                                         
]);                                                                      
$balance_eur= \Stripe\BalanceTransaction::retrieve($transfer_eur['balance_transaction'],[                                                                            
    'account' => $eur_acc_number                                                                     
]);

这是我的结果:

$charge['amount'] // shows customer EUR amount
$balance['amount'] // shows the convert customers amount in GBP

$transfer_eur['amount'] // shows the GBP amount in the connect EUR account
$balance_eur['amount'] // just show the a negative GBP value of the EUR account

我希望$balance_eur['amount']向我显示EUR值,但它向我显示一个负GBP值。

我就在那儿,但是我无法从关联帐户中获得欧元价值。有可能吗?

[编辑]

我尝试过但失败了的是通过某种方式使用destination_payment来使用payment ID - py_****

$balance_other = \Stripe\Charge::retrieve($charge_id,[                                                                       
    'account' => $row['stripe_acc'],
    'destination_payment' => $payment_id                                                                         
]);

1 个答案:

答案 0 :(得分:1)

您基本上想进行转账,获得其中的destination_payment来查看已到达关联帐户的付款,然后获得与该关联帐户上的付款相关的balance_transaction。为此,也将有助于使用API​​的expanding objects功能。

$t = \Stripe\Transfer::create([
  "amount" => 400,
  "currency" => "eur",
  "destination" => "acct_1EPRDuFk3qO2dNo1"
]);
$transfer_id = $t->id;
$transfer_eur= \Stripe\Transfer::retrieve([
  'id' => $transfer_id,
  'expand' => ['destination_payment.balance_transaction']
]);
$balance_transaction_eu = $transfer_eur->destination_payment->balance_transaction;
print_r($balance_transaction_eu);

您也可以在进行传输时获取相关数据,从而大大简化此操作:

$t = \Stripe\Transfer::create([
  "amount" => 400,
  "currency" => "eur",
  "destination" => "acct_1EPRDuFk3qO2dNo1",
  'expand' => ['destination_payment.balance_transaction']
]);
$balance_transaction_eu = $t->destination_payment->balance_transaction;
print_r($balance_transaction_eu);