用代币结账

本文关键字: | 更新日期: 2023-09-27 18:17:21

我正在尝试使用checkout.com收取信用卡费用。我正在用卡币充值。我已经使用checkoutkit.js生成了卡令牌。然后将这个令牌传递给我的控制器,我在那里进行支付调用。但是我没有得到回应。即使在调试模式下,它也不会移动到下一行。我的视图和控制器代码:

        <script>
        window.CKOConfig = {
            debugMode: true,
            publicKey: 'pk_test_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac',
            customerEmail: 'random@email.com',
            ready: function (event) {
                console.log("CheckoutKit.js is ready");
                CheckoutKit.monitorForm('.card-form', CheckoutKit.CardFormModes.CARD_TOKENISATION);
            },
            apiError: function (event) {
                alert('api error');
            },
            cardTokenised: function(e) {
                $.ajax({
                    type: 'POST',
                    url: '@Url.Action("Charge")',
                    data: { cardToken: e.data.id },
                    success: function (data) {
                        alert(data);
                        location.reload();
                    },
                    error: function() {
                        alert('error');
                    }
                });
            }
        };
    </script>
    <script async src="https://sandbox.checkout.com/js/v1/checkoutkit.js"></script>
    <div class="jumbotron">
        <form class="card-form" method="POST">
            <input data-checkout="email-address" type="email" placeholder="Email address">
            <input data-checkout="card-number" type="text" placeholder="Credit card number">
            <input data-checkout="card-name" type="text" placeholder="Name on card">
            <input data-checkout="expiry-month" type="text" placeholder="MM">
            <input data-checkout="expiry-year" type="text" placeholder="YY">
            <input data-checkout="cvv" type="text" placeholder="CVV">
            <input type="submit" value="Pay Now">
        </form>
    </div>
[HttpPost]
            public ActionResult Charge(string cardToken)
            {
                APIClient CheckoutClient = new APIClient("sk_test_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", Environment.Sandbox);
                CardTokenCharge cardTokenChargeModel = TestHelper.GetCardTokenChargeCreateModel(cardToken, TestHelper.RandomData.Email);
                HttpResponse<Charge> response = CheckoutClient.ChargeService.ChargeWithCardToken(cardTokenChargeModel);
                return Json(cardToken);
            }

用代币结账

我已经检查了这个过程,它似乎工作得很好,但是有几件事我想和你确认。

你能确保你按照下面的步骤做吗?

1-你的脚本依赖于JQuery,因此你需要确保在你的html页面中有以下一行,这样你的Ajax请求就可以工作了:

2-当您填写所需的卡片信息并单击Pay Now按钮时,CheckoutKit.js将首先连接到沙箱,为您生成卡片令牌,例如card_tok_C739732A…

您是否可以在浏览器控制台中检查是否收到成功的响应。

3-一旦你得到卡令牌,你的脚本将发布一个Ajax调用收费端点,你定义为你的动作方法。

您可以检查您的cardToken参数是否在您的操作中填充了一个值。

4-你可以调试你的代码来检查你是否收到任何响应以下调用,因为它会返回你一个响应(有60秒超时):

HttpResponse response = CheckoutClient.ChargeService.ChargeWithCardToken(cardTokenChargeModel);

让我们看看你会有什么反应,这样我们就可以进一步调查了。我很乐意在这个问题上为你提供帮助。

谢谢

相关文章:
  • 没有找到相关文章