【问题标题】:checkout charge with token带令牌的结帐费用
【发布时间】:2016-01-10 23:48:41
【问题描述】:

我正在尝试使用 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);
            }

【问题讨论】:

    标签: c# .net asp.net-mvc payment checkout-payments


    【解决方案1】:

    我已经检查了该过程,它似乎工作正常,但是我想与您确认几件事。

    请确保您按照以下步骤操作:

    1- 您的脚本依赖于 JQuery,因此您需要确保您的 html 页面中有以下行,这样您的 Ajax 请求才能正常工作:

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

    您能否检查一下您是否在浏览器控制台中收到了成功的响应。

    3- 获得卡令牌后,您的脚本将发布一个 Ajax 调用来调用您定义为操作方法的收费端点。

    您能否检查您的操作中的 cardToken 参数是否填充了值。

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

    HttpResponse 响应 = CheckoutClient.ChargeService.ChargeWithCardToken(cardTokenChargeModel);

    让我们看看您会有什么反应,以便我们对此进行更多调查。我很乐意在这个问题上为您提供帮助。

    谢谢

    【讨论】:

    • 我收到了我的 .net 代码中的卡令牌。但是当我使用该令牌向用户收费时,应用程序不会返回任何内容,甚至没有例外。
    • 嗨 Atif,你是代理吗?您的请求似乎没有到达我们。你能检查一下你是否可以从一个简单的控制台应用程序向我们的 sanbox 环境提交一个 http post 请求。
    • 不,它不是我的代理,它是 dot net api 中的错误
    • 您好 Atif,您似乎遇到了一个有趣的问题,我想为您提供帮助。我可以建议您向 support@checkout.com 发送电子邮件,告诉我们您使用的客户端库版本(4.0 或 4.5)、您使用的 Api 密钥以及填充在您的示例请求中的请求有效负载。您也可以发送示例应用程序的 zip 文件,我们从那里获取。请同时附上您的 Skype 用户名,以便我们直接进行聊天,以便更快地为您解决此问题。
    • 我已经发了很多邮件。我唯一的回应是我们正在查看您的问题。 :(
    猜你喜欢
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 2019-09-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多