我使用脑树作为支付网关。在那我使用插入式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>
我无法在添加新卡时将付款方式设置为默认值。 帮助将不胜感激。谢谢。
答案 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://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
由于是一次性付款,因此删除用户付款方式并没有太大影响。
无论如何,在交易中,我可以看到细节。
希望这会对某人有所帮助。