【问题标题】:Node Quickpay authentication节点快付认证
【发布时间】:2016-12-11 21:14:35
【问题描述】:

我正在尝试使用Node quickpay

但是他们的文档不是那么“容易”理解,我有点卡在 autentication 上。

我有我的API token,并且我遵循了以下 SO 问题:

QuickPay node.js REST api

进行以下操作:

    var quickPay = require("quick-pay");
module.exports = function (router, mongoose) {
    var token = "myToken";
    var version = {
        "Accept-Version": "v10",
        "Authorization": "your basic authentication"};

    var transaction_id = {};

    router.route('/api/payment')
        .put(function (req, res) {
            processCreatePayment(req, res);
        });

    function processCreatePayment(req, res) {
        var random_order_id = Math.floor((Math.random() * 1000) + 1);

        var parameters = {
            "currency": "INR",
            "order_id": random_order_id
        };
        quickPay.post("payments/", version, parameters)
            .then(function (result) {
                console.log(result);
                res.send(result);
                transaction_id = result.id;
                console.log(transaction_id);
            })
            .catch(function (err) {

                console.log(err.response);
                res.send(err.response);

            });
    }


    return router;
};

但是我不太确定 "Authorization": "your basic authentication" 应该是什么。

希望有人能帮帮我。

请注意我已经尝试过:

    var version = {
    "Accept-Version": "v10",
    "Authorization": "Basic "+token
};

但运气不好

我得到的只是invalid Basic Auth

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    为了使用带令牌的基本身份验证,请尝试在 api 密钥之前添加 ':'。所以使用:

    "Authorization": ":" + apiKey
    

    【讨论】:

      【解决方案2】:

      我相信@maciej-dzikowicki 是对的,但我只想扩展他的答案,因为这件事抢走了我太多时间。

      tr;tlbasic auth 需要一个冒号分隔的base64 编码字符串,前缀为Basic。在 Quickpays 的情况下,没有用户名,因此 Authorization 标头只是您的 API 密钥,前缀为 base64 编码的冒号。

      在您的情况下,@marc-rasmussen Node Quickpay 会为您执行此操作,因此您只需将您的 API_KEY 提供给库返回的工厂函数即可。

      另外,如果有人(像我一样)努力寻找他们的API_KEY,这里是找到你的步骤。

      1. 导航到您的 Quickpay 帐户的用户部分https://manage.quickpay.net。选择一个用户或“创建系统用户”。

      1. 选择一个用户并确保设置了正确的权限以访问您需要的 API 端点。

      1. 点击“查看 API 密钥”获取您的 API 密钥。

      【讨论】:

        【解决方案3】:

        这未经测试,但遵循文档。未设置时,标头信息/基本身份验证应设置为适当的默认值(例如"v10")。

        // Initialize quickPay with your API key    
        var quickPay = require("quick-pay")(YOUR_API_KEY_GOES_HERE);
        
        module.exports = function (router, mongoose) {
        
            var transaction_id = {};
        
            router.route('/api/payment')
                .put(function (req, res) {
                    processCreatePayment(req, res);
                });
        
            function processCreatePayment(req, res) {
                var random_order_id = Math.floor((Math.random() * 1000) + 1);
        
                var parameters = {
                    "currency": "INR",
                    "order_id": random_order_id
                };
                quickPay.post("payments/", null, parameters)
                    .then(function (result) {
                        console.log(result);
                        res.send(result);
                        transaction_id = result.id;
                        console.log(transaction_id);
                    })
                    .catch(function (err) {
        
                        console.log(err.response);
                        res.send(err.response);
        
                    });
            }
        
        
            return router;
        };
        

        【讨论】:

          猜你喜欢
          • 2014-07-17
          • 2017-02-14
          • 2021-01-09
          • 2015-04-17
          • 2018-05-09
          • 2017-01-13
          • 1970-01-01
          • 2014-12-12
          • 1970-01-01
          相关资源
          最近更新 更多