如何将 PayU 支付网关与 PhoneGap 应用程序集成?
哪个是正确的方法?
在安卓的情况下
- 为android添加cordova平台后,在eclipse中导出,从payu android sdk注册activity,然后从javascript调用这个activity
- 由于应用程序使用来自 Webservice api 调用 payu Rest API 的 php webservice API
- 使用 github 中提供的 iframe
如果有人对此提供一些意见会很有帮助。
如何将 PayU 支付网关与 PhoneGap 应用程序集成?
哪个是正确的方法?
在安卓的情况下
如果有人对此提供一些意见会很有帮助。
这是将 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
});
}