将更改付款方式设置为默认的braintree drop-in ui

时间:2015-10-08 09:54:59

标签: javascript python django payment-gateway braintree

我使用脑树作为支付网关。在那我使用插入式UI。 在drop-in ui中有一个选项更改付款方式。 当我执行更改付款方式时,它会更改,但不会设置默认值。而对于下一次交易,它只使用旧卡而不是新添加的卡。

我的js

<script>
$(document).ready(function() {
    braintree.setup("{{ client_token }}", "dropin", {
        container: "checkout",
        form: "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>

form.html

<form id='checkoutForm' method='POST' action="/upgrade/">{% csrf_token %}

            <div id='checkout' ></div>

                <input type="hidden" name="plan" value="{{ plan }}"/>
                <input name="token" type="hidden" value="{{ client_token }}" />
                <!-- disable this when clicked -->
            <button type="button" class="btn modal-action modal-close right margin-class canceleledd"
                            style="display:none;background-color:lightcoral;color: #000000;">Cancel</button>
            <input id='submitPayment' type='submit' data-loading-text="Completing..." class='btn right margin-class' value='Pay ${{ amount }}' autocomplete="off" style="background-color:lightblue;color: #000000;"/>
</form>

我无法在添加新卡时将付款方式设置为默认值。 帮助将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:1)

完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系support

有些事情值得注意,有关设置默认付款方式的信息。

希望有帮助

答案 1 :(得分:1)

defaultFirst选项添加到braintree.setup,您的设置默认付款方式将自动选中并显示在插入式用户界面中。

braintree.setup("{{ client_token }}", "dropin", {
    container: "checkout",
    form: "checkoutForm",
    defaultFirst: true
});

在braintree JS v2.24.0中添加了功能

文档:https://developers.braintreepayments.com/reference/client-reference/javascript/v2/configuration#setup-method-options

来源:https://github.com/braintree/braintree-web/issues/76#issuecomment-244162120

答案 2 :(得分:0)

i通过在失败或成功交易后立即删除付款方式解决了这个问题。

views.py

payment_method_result = braintree.Transaction.sale({
                                        "customer_id": merchant_customer_id,
                                        "amount": am,
                                        "options": {
                                                    "submit_for_settlement": True
                                                  }
                                    })
                # print dir(payment_method_result.transaction)
                # print payment_method_result
                # print payment_method_result.transaction
   try:
      result = braintree.PaymentMethod.delete(payment_method_result.transaction.credit_card['token'])
   except:
      pass
由于是一次性付款,因此删除用户付款方式并没有太大影响。 无论如何,在交易中,我可以看到细节。 希望这会对某人有所帮助。