javascript Stripe -在创建结账会话和付款时/之后,将元数据添加到已连接/目标帐户中

zaqlnxep  于 2023-04-28  发布在  Java
关注(0)|答案(2)|浏览(145)

我在做一个简单的任务。代码已经在工作。步骤如下:
使用这篇文章:https://stripe.com/docs/checkout/integration-builder
1.界面购票
1.在后端创建结帐会话并传递所需的数据。这些都很好。

const session = await this._stripe.checkout.sessions.create({
       payment_method_types: ['card'],
       customer_email: email,
       line_items: [
          {
              price_data: {
              currency: ###,
              unit_amount_decimal: ###,
              product_data: {
                   name: ###,
                   description: ###
              }    
          },
          quantity: 1
        }
     ],
     payment_intent_data: {
         on_behalf_of: ###,
         transfer_data: {
             destination: ###,
             amount: ###
     },
     metadata,
     statement_descriptor: ###
  },
  mode: 'payment',
  success_url: successUrl,
  cancel_url: cancelUrl
});

代码工作正常,我能够得到付款完成,它反映到我的主帐户与元数据和其他字段。

问题:我希望将相同的元数据传输到我正在转账的连接帐户中,以便我们可以共享相同的元数据。在连接的/目的地账户内有一个元数据部分进入支付。这就是我想添加这些细节的地方。还有什么我需要更新的,比如收费或转账或其他什么吗?我尝试更新传输,但它们都没有将元数据反映到目标帐户中。

我应该在哪里添加什么参数来将元数据获取到我连接的帐户中?任何帮助将是伟大的。谢谢

mzsu5hc0

mzsu5hc01#

当资金从您的平台账户转移到连接的账户时,将创建两个对象来表示转移:
1.平台帐户上存在的Transfer对象(tr_
1.已连接帐户上存在的付款对象(py_
在Stripe API中,Payment对象是一种Charge类型,因此您可以使用Charges API将metadata添加到Payment对象。
注意:付款对象存在于已连接的帐户上,而不是您的平台帐户上,因此您需要make an API call on behalf of the connected account才能访问/修改付款对象。
您可以通过查看转账上的destination_payment属性来获取付款对象的ID。

5kgi1eie

5kgi1eie2#

创建支付意向后,您可以使用(tr_)id获取转账详细信息,这将具有您需要查找连接帐户费用的支付id(py_)。

def get_charge_transfer(params):
    """
       Get transfer details
    """
    transfer = stripe.Transfer.retrieve(params["tr_id"])
    return transfer

在您获得支付id(py_)之后,您可以通过将py_ id和连接的目标帐户id传递到计费接口来检索计费id,以更新连接的帐户上的计费对象。

import json
def update_connected_charge(event):
    """
      update meta data on connected charge account by payment id
      param: py_id <str> payment id, 
      param: acc_id <str> account id
    """
    params = json.loads(event.get("body", "{}"))
    charge = stripe.Charge.retrieve(params['py_id'],stripe_account=params["acc_id"])
    charge.update({ "metadata": { "test": "123" }})
    charge.save()
    return charge

相关问题