Разделение платежей с помощью stripe в django

Я работаю над проектом, в котором покупатель производит оплату, и эта оплата должна быть разделена на

  • заявка-штраф
  • оплата продавца
  • реферальный платеж это мой код

        if buyer_address.state.lower() == 'alabama' or buyer_address.state.lower() == 'al':
            taxes = int(round(float(price * 0.08)))
        shipping_charges = courier.price
        total_charges = price + taxes
        # if referrals:
        admin_amount = int((total_charges - shipping_charges) * 0.2)
        seller_amount = total_charges - admin_amount
        referral_amount = int(admin_amount * 0.02)
        payment_info = {
            "amount": total_charges,  # Amount in cents
            "currency": "usd",
            "connected_accounts": [
                {"account_id": 'acct_1OoODQIbLDChIvG2', "amount": seller_amount},
                {"account_id": "acct_1OrzPRI5g3KKKWKv", "amount": referral_amount},
            ]
        }

        stripe.api_key = "sk_test_EI5Kddsg2MCELde0vbX2cDGw"
        try:
            for account_info in payment_info["connected_accounts"]:
                # Set up transfer amount and destination separately
                transfer_amount = account_info["amount"]
                destination_account = account_info["account_id"]
                print("=======================================================", destination_account)
                
                session = stripe.checkout.Session.create(
                    success_url=my_domain + '/payment_success/' + str(auction_id) + '/' + courier_id + "?mode=" + mode,
                    cancel_url=my_domain + '/payment_failed/' + str(auction_id) + '/' + courier_id + "?mode=" + mode,
                    payment_method_types=['card'],
                    mode = 'payment',
                   line_items=[{
                        'price_data': {
                            'currency': 'usd',
                            'product_data': {
                                'name': 'NailSent Nails',
                            },
                            'unit_amount': int(total_charges),  # amount should be in cents
                        },
                        'quantity': 1,
                    }],
                    payment_intent_data={
                        'transfer_data': {
                            'destination': destination_account,
                            'amount': transfer_amount,  # amount should be in cents
                        }
                    },
                )
        except stripe.error.StripeError as e:
            return HttpResponse(f"Error: {e}")

я пытался разделить платеж между всеми тремя пользователями

  • заявка-штраф
  • сборы с продавца
  • плата за рекомендацию

я попытался использовать метод перевода платежа, но получил ошибку недостаточного количества средств

Прямо сейчас, если я делаю платеж. сумма реферала поступает на реферальный счет, но продавец не получает никаких денег

пожалуйста, предоставьте любое лучшее решение Заранее спасибо

Для разделения платежей между несколькими подключенными счетами можно использовать раздельные Заряды и Переводы. Обратите внимание на использование свойства transfer_group, которое позволяет указать исходный Заряд для Переводов. Это поможет вам избежать ошибки Недостаточно средств. Таким образом, переводы будут выполняться только при успешном выполнении исходного Заряда.

Вернуться на верх