angularjs - 使用 NodeJS 集成 CCAvenue

标签 angularjs node.js ccavenue

我是支付网关的新手。我想使用 NodeJS 将 CCAvenue 集成到我的 Web 应用程序中。我已经从 npm 安装了 CCAvenue 包,但我不知道如何进行付款。

如果有人向我指出 CCAvenue 集成手册之外的教程,我会非常高兴。

最佳答案

首先,我建议使用CCAvenue提供的nodejs集成套件(非无缝)

1) 按原样将集成套件中的 dataForm 添加到 UI 组件中

2)使用ajax调用其余api,如下:

app.controller("changeProfileController", function($scope, $sce){
  var dataObject = $("#paymentDataForm").serializeArray();
  $.ajax({
      type: "POST",
      url: restApiServer.ReSTFulAPIHost + '/ccavRequestHandler',
      data: dataObject,
      cache : false,
      processData: false,
      success: function (res) {
        //console.log(data);
        $scope.myText = $sce.trustAsHtml(res.data);
      },
      dataType: 'json'
  });
});

3) 从集成套件中调用 ccAvenueRequestHandler 代码,该代码将生成如下 html 表单

// Use your own credentials
var workingKey = "AECGKJBBSERVFBG";
var accessCode = "ab4512vhvweb56g784433";
// formObject is data send from client
var contentArray = [];
_.each(formObject, function(value, key, data){
     contentArray.push(key+"="+data[key]);
});
body = contentArray.join("&");
encRequest = ccav.encrypt(body,workingKey);
var formBody = '<form id="nonseamless" method="post" name="redirect" action="https://secure.ccavenue.com/transaction/transaction.do?command=initiateTransaction"  ><input type="text" name="access_code" id="access_code" value="'+ accessCode +'" style="display:none;" ><input type="text" id="encRequest" name="encRequest" value="'+ encRequest +'" style="display:none;" ><script language="javascript">document.redirect.submit();</script></form>';
return reply(formBody);

4) 由于 Angularjs 不提供到另一个 url 的直接路由。您必须在 UI 中创建一个 DOM,您可以在响应中渲染 html 表单(2),这将重定向到 ccavenue 支付页面

// HTML Code
<div ng-bind-html='myText'></div>

5) 从套件中添加 ccavenueResponse 处理程序来处理您的响应,解密 ccavenue 中的数据并将您的用户重定向到包含响应数据的链接

var workingKey = "AECGKJBBSERVFBG", //Put in the 32-Bit key shared by CCAvenues.
ccavResponse = ccav.decrypt(request.payload.encResp,workingKey);
var strArray = ccavResponse.split("&");
var resObject =  {};
for(var i=0; i< strArray.length; i++){
  var tempArray = strArray[i].split("=");
  resObject[tempArray[0]] = tempArray[1]; 
}
// resObject will contains the payment information
// You can use this data as you want

关于angularjs - 使用 NodeJS 集成 CCAvenue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36374159/

相关文章:

android - 我的应用程序中 Nougat OS 中显示的 Webview 空白页面

android - 如何在android中通过webview处理支付网关

javascript - jQuery 加载 &lt;script&gt; 但在 AngularJS 下不评估相同内容

Javascript 停止浏览器广告插件

javascript - 是否可以 ng-repeat 以任意数字递增 $index ?

node.js - “$”未被识别为内部或外部命令

node.js - nodemon - 忽略文件和路径

javascript - Angular JS ng-grid : How to cancel Editted Row to show back the original values in ng-grid

node.js - Npm 安装失败(无法解决依赖关系)

ios - 在 iOS 应用程序中集成 CCAvenue 时出现问题