tap支付方式中如何动态传递customer id以保存卡值

How to pass the customer id dynamically in the tap payment method to save the card value

我正在向 TAP PAYMENT GATEWAY 发送 post 请求以保存卡,url 需要两个参数,其中一个是源(最近生成的令牌)和 url 内部 {customer_id},我正在尝试 string 连接,但它显示错误 Invalid JSON请求.

views.py:

ifCustomerExits = CustomerIds.objects.filter(email=email)
totalData = ifCustomerExits.count()
if totalData > 1:
    for data in ifCustomerExits:
        customerId = data.customer_id
        print("CUSTOMER_ID CREATED ONE:", customerId)
    tokenId = request.session.get('generatedTokenId')
    payload = {
        "source": tokenId
    }

    headers = {                        
        'authorization': "Bearer sk_test_XKokBfNWv6FIYuTMg5sLPjhJ",
        'content-type': "application/json"
    }

    # HERE DOWN IS THE url of TAP COMPANY'S API:

    url = "https://api.tap.company/v2/card/%7B"+customerId+"%7D"
    response = requests.request("POST", url, data=payload, headers=headers)
    json_data3 = json.loads(response.text)
    card_id = json_data3["id"]
    return sponsorParticularPerson(request, sponsorProjectId)

他们的预期url = https://api.tap.company/v2/card/{customer_id}

他们的文档 link: https://tappayments.api-docs.io/2.0/cards/create-a-card

试试这个.. 首先转换dict。进入 JSON 并使用 request.post:

发送 post 请求
    <b>import json</b>
    ...
    <b>customerId = str(data.customer_id)</b>
    print("CUSTOMER_ID CREATED ONE:", customerId)
    tokenId = request.session.get('generatedTokenId')
    payload = {
    "source": tokenId
    }

    headers = {                        
        'authorization': "Bearer sk_test_XKokBfNWv6FIYuTMg5sLPjhJ",
        'content-type': "application/json"
    }
    <b>pd = json.dumps(payload)</b>
    # HERE DOWN IS THE url of TAP COMPANY'S API:

    url = "https://api.tap.company/v2/card/%7B"+customerId+"%7D"
    <b>response = requests.post(url, data=pd, headers=headers)</b>
    json_data3 = json.loads(response.text)
    card_id = json_data3["id"]
    return sponsorParticularPerson(request, card_id)

请告诉我这是否有效...