首页 > 解决方案 > Braintree 客户端令牌生成方法在 Django 中引发 XML 错误

问题描述

我正在使用以下代码从 Django 支付视图中的 Braintree 网关生成客户端令牌。

def generate_token(request,id,token):
    if not validate_user_session(id,token):
        return JsonResponse({"error":"Invalid session"})


    gateway = braintree.BraintreeGateway(
    braintree.Configuration(
    braintree.Environment.Sandbox,
    merchant_id="xxxxxxxxxx",
    public_key="xxxxxxxxxxxx",
    private_key="xxxxxxxxxxxxxxxxxxxxxx"
    )

    print(gateway.client_token.generate())
    return JsonResponse({"clientToken":gateway.client_token.generate(), "success":True})

这会引发错误

xml.parsers.expat.ExpatError: not well-formed (invalid token): line 1, column 0

但是,该代码在 Django 和 Python Shell 中运行良好,并成功生成了令牌。我似乎不明白这是什么问题?在这两种情况下,ID 和令牌都是相同的。任何帮助表示赞赏。

标签: pythondjangoxmlbraintree

解决方案


替换 client_token = gateway.client_token.generate()

通过 client_token = gateway.client_token.generate(params={'merchant_account_id': settings.BRAINTREE_MERCHANT_ID})


推荐阅读