4

如何将 PayU 支付网关与 PhoneGap 应用程序集成?

哪个是正确的方法?

在安卓的情况下

  1. 为android添加cordova平台后,在eclipse中导出,从payu android sdk注册activity,然后从javascript调用这个activity
  2. 由于应用程序使用来自 Webservice api 调用 payu Rest API 的 php webservice API
  3. 使用 github 中提供的 iframe

如果有人对此提供一些意见会很有帮助。

4

1 回答 1

-1

这是将 payu 集成到手机间隙的示例应用程序,您可以在此处找到 html 和 javascript 代码。此示例应用使用不带 SDK 的 payu。

更新: 如果您使用的是角度

$scope.payuOrder = function(form) {
        $scope.payu_params = {
            key: "xx@#EX",
            salt: "Dda3dqCx",
            txnid:"qw"+Math.floor(Math.random() * 100000000000),
            amount:"1230",
            productinfo:"Product info",
            firstname:"Ankit",
            email:customer."sf.ankit@gmail.com",
            user_credentials:"xx@#EX:unique_id",
            udf1:"",
            udf2:"",
            udf3:"",
            udf4:"",
            udf5:"",
            offer_key:"",
            card_bin:"",
            surl: encodeURI("https://payu.herokuapp.com/success"), //url needs to be encode
            furl: encodeURI("https://payu.herokuapp.com/failure") // url needs to be encode
        };

        var hash_string = $scope.payu_params.key+"|"+$scope.payu_params.txnid+"|"+$scope.payu_params.amount+"|"+
        $scope.payu_params.productinfo+"|"+$scope.payu_params.firstname+"|"+
        $scope.payu_params.email+"|"+$scope.payu_params.udf1+"|"+$scope.payu_params.udf2+"|"+
        $scope.payu_params.udf3+"|"+$scope.payu_params.udf4+"|"+$scope.payu_params.udf5+"||||||"+$scope.payu_params.salt;

        console.log("HashString = "+hash_string);

        $scope.payu_params.hash = CryptoJS.SHA512(hash_string).toString(CryptoJS.enc.Base64);

        console.log("Hash = "+$scope.payu_params.hash);

        var payu_params_string = '';
        for (var key in $scope.payu_params) {
          payu_params_string += key + "=" + $scope.payu_params[key] + "&";
        }

        payu_params_string = payu_params_string.slice(0,-1);
        console.log(payu_params_string);
        var bytes = [];
        for (var i = 0; i < payu_params_string.length; ++i) {
            bytes.push(payu_params_string.charCodeAt(i));
        }
             payu_params_string.toString().getBytes());         
             var winURL = "https://test.payu.in/_payment";
             var form = document.createElement("form");
             form.setAttribute("method", "post");
             form.setAttribute("action", winURL);
             for (var i in $scope.payu_params) {
                 if ($scope.payu_params.hasOwnProperty(i)) {
                     var input = document.createElement('input');
                     input.type = 'hidden';
                     input.name = i;
                     input.value = $scope.payu_params[i];
                     form.appendChild(input);
                 }
             }
          var options = {
              location: 'no',
              clearcache: 'yes',
              toolbar: 'no'
            };
            $cordovaInAppBrowser.open(winURL, '_blank', options)
              .then(function(event) {
                  $rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event){
                    // insert form on loaded window
                        document.body.appendChild(form);                     
                        form.submit();               
                        document.body.removeChild(form);           
                  });

              })
              .catch(function(event) {
                // error
              });
       }
于 2015-12-10T10:49:44.043 回答