【问题标题】:How to generate checksum on click of a button如何在单击按钮时生成校验和
【发布时间】:2019-06-16 15:28:32
【问题描述】:

我正在尝试为我的应用中的 paytm 集成生成校验和。

所以,我下载了https://github.com/Paytm-Payments/Paytm_App_Checksum_Kit_NodeJs github 存储库。

然后在我的服务器端,我创建了一个名为“paytm_mobile”的文件夹,其中上传的结构如下所示。

然后我用我的详细信息更新了“paytm”文件夹中的文件“paytm_config”

module.exports = {
  paytm_config: {
    MID: 'V******************3',
    WEBSITE: 'WEBSTAGING',
    CHANNEL_ID: 'WAP',
    INDUSTRY_TYPE_ID: 'Retail',
    MERCHANT_KEY : '0Un**********y3R'
    }
}

然后,按照上面链接中提供的步骤

  • 将“paytm”文件夹、index.js、router.js 和 server.js 复制到您的项目目录中。
  • 请在“paytm/paytm_config.js”文件中设置所需参数。这些参数将在完成 Paytm 的注册过程后收到。
  • 对于生成校验和 URL,请在 router.js 文件中使用“/generate_checksum”的大小写。例如,生成校验和 URL 可能类似于 yoursite/generate_checksum。
  • 对于验证校验和 URL,请在 router.js 文件中使用“/verify_checksum”的大小写。例如,验证校验和 URL 可能类似于 yoursite/verify_checksum。

点击我的应用程序上的按钮,我尝试按照第 3 步调用“yoursite/generate_checksum”,如下所示。

exports.generate_cheksum = function(){
    console.log("generate_cheksum");

    const httpModule = require("http");
    httpModule.request({
        url: "http://www.vis******ma.com/paytm_mobile/index.js",
        method: "GET"
    }).then((response) => {
        console.log(response); //[object Object]
        response.map(key=>console.log(key)); //not getting anything
    }, (e) => {
        console.log("----error");
        console.log(e);
    });
}

但我没有明白的一件事是如何调用这个“generate_checksum”。

  • 我知道网址不正确。那么我怎样才能得到校验和作为响应呢?
  • 发现任何其他错误!告诉我。

【问题讨论】:

  • 我认为您首先必须了解 NodeJS 的工作原理。您不能在 Appache 服务器上运行 NodeJS,您必须在您的服务器上安装 Node(如何安装取决于您选择的服务器/托管类型,请咨询您的服务提供商)并通过执行类似 @ 的操作来启动应用程序987654328@ 将启动服务器并在机器上设置路由,然后您可以访问像http://www.vis******ma.com[:port_number_of_node_app]/generate_checksum 这样的api。
  • @Manoj 如果我不想在服务器上安装 nodeJs。我怎样才能生成校验和。通过使用简单的 php。有没有其他更容易或以上的方法是唯一可以遵循的方法。我也想知道在我的应用程序本身上生成校验和的代码。
  • 不,您不能在客户端进行校验和。如果您对 NodeJS 不满意,您只需 Google for Paytm 的 PHP 示例,here 就可以了。
  • @jakerella OP 不必明确地说 Appache,我确信开发人员正试图通过查看屏幕截图在 Apache 上运行它,而且他也从未提及任何关于运行节点应用程序的事情.我猜我是对的。
  • @Manoj 我检查了上面的链接,但不知道如何将它集成到 nativescript。所以我只是去了developer.paytm.com/docs/v1/payment-gateway/#code 并复制了 php 代码。然后改变了我的mid和mkey。但是当我尝试运行该页面时,即使文件位于它们的位置,它也会给出 404 错误。链接看起来像 www.******.com/paytm_mobile/generateChecksum.php 。关于它为什么给出 404 的任何想法。它是否试图下载一些库我是否错过了它。我刚刚复制了上面提到的链接中提供的确切代码。

标签: node.js nativescript paytm


【解决方案1】:

将此php文件写入服务器ex的任何位置:generate_checksum.php

<?php

    require_once("encdec_paytm.php");

    define("merchantMid", "V******************3");
    // Key in your staging and production MID available in your dashboard
    define("merchantKey", "0**************R");

    // Key in your staging and production merchant key available in your dashboard
    define("orderId", "order1");
    define("channelId", "WEB");
    define("custId", "cust123");
    define("mobileNo", "7777777777");
    define("email", "username@emailprovider.com");
    define("txnAmount", "100.12");
    define("website", "WEBSTAGING");
    // This is the staging value. Production value is available in your dashboard
    define("industryTypeId", "Retail");
    // This is the staging value. Production value is available in your dashboard
    define("callbackUrl", "https://<Merchant_Response_URL>");
    $paytmParams = array();
    $paytmParams["MID"] = merchantMid;
    $paytmParams["ORDER_ID"] = orderId;
    $paytmParams["CUST_ID"] = custId;
    $paytmParams["MOBILE_NO"] = mobileNo;
    $paytmParams["EMAIL"] = email;
    $paytmParams["CHANNEL_ID"] = channelId;
    $paytmParams["TXN_AMOUNT"] = txnAmount;
    $paytmParams["WEBSITE"] = website;
    $paytmParams["INDUSTRY_TYPE_ID"] = industryTypeId;
    $paytmParams["CALLBACK_URL"] = callbackUrl;
    $paytmChecksum = getChecksumFromArray($paytmParams, merchantKey);
    $transactionURL = "https://securegw-stage.paytm.in/theia/processTransaction";
    // $transactionURL = "https://securegw.paytm.in/theia/processTransaction"; // for    production

    echo $paytmChecksum;
?>

添加这个文件 "require_once("encdec_paytm.php");"在此链接的同一文件夹中

https://github.com/Paytm-Payments/Paytm_App_Checksum_Kit_PHP/blob/master/lib/encdec_paytm.php

将必填字段传递给 php 文件由您自己完成。你需要在那里提供你的 mid 和 mkey。

【讨论】:

    猜你喜欢
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多