客户不是在braintree (js+python)中创建的



创建客户时出现错误

AuthenticationError at /vissa/assign-plan/
我js

<script src="https://js.braintreegateway.com/v2/braintree.js"></script>

{如果花费%}$(文档)时函数(){布伦特里。设置("{{client_token}}", "drop ", {容器:"结账",形式:"checkoutForm"});

    $("#submitPayment").on("click", function () {
        $("button").off("click");
        $("a").off("click");
        $('body').off("click");
        var btn = $(this).button("loading")
        setTimeout(function () {
            btn.button('reset');
        }, 3500)
    });
});
</script>

{% endif %}客户端令牌我正试图在上下文处理器中获取。

def payment_data(request):
    try:
        userone = UserProfile.objects.get(user=request.user)
        indi_user = IndividualUser.objects.get(user_profile=userone)
        plan = int(indi_user.selected_plan)
        amount = int(plan)
    except:
        plan = None
        amount = None
    try:
        merchant_obj = UserMerchantId.objects.get(user=request.user)
        cust = True
        merchant_customer_id = merchant_obj.customer_id
        print merchant_customer_id
        client_token = braintree.ClientToken.generate({
                "customer_id": merchant_customer_id
            })
    except:
        cust = False
        client_token = None
    try:
        custom = Transaction.objects.filter(user=request.user)[0]
        paid = custom.success
    except:
        paid = False
    return {'cust':cust, "plan":plan,"amount": amount, "paid": paid,"client_token":client_token} #"plan": plan}

但我得到高于错误。

if I try

client_token = braintree.ClientToken.generate()

获得身份验证错误。我不知道如何在django中创建客户端令牌。有没有一种方法来创建客户令牌没有customer_id?

Creating customer.
    def new_user_receiver( instance, *args, **kwargs):
        try:
            merchant_obj = UserMerchantId.objects.get(user=instance)
        except:
            new_customer_result = braintree.Customer.create({
                    "first_name": instance.first_name,
                    "last_name": instance.last_name,
                    "email": instance.email,
                    "phone": instance.get_profile().telephone_number
                })
            if new_customer_result.is_success:
                merchant_obj, created = UserMerchantId.objects.get_or_create(user=instance)
                merchant_obj.customer_id = new_customer_result.customer.id
                merchant_obj.save()
                print """Customer created with id = {0}""".format(new_customer_result.customer.id)
            else:
                print "Error: {0}".format(new_customer_result.message)

修改后正常运行

import braintree
braintree.Configuration.configure(braintree.Environment.Production,
                                  merchant_id=settings.BRAINTREE_MERCHANT_ID,
                                  public_key=settings.BRAINTREE_PUBLIC_KEY,
                                  private_key=settings.BRAINTREE_PRIVATE_KEY)

在生产环境中用" production "代替"Sandbox"

最新更新