从JavaScript传递PowerShell参数值
基本上,我需要将结果从JavaScript传递到PowerShell 我有一个powershell脚本,可以打开IE,填写所有数据并提交表单。JavaScript返回正确的值,现在我需要将结果传递回PowerShell PowerShell脚本(调用\u cardtoken.ps1):从JavaScript传递PowerShell参数值,javascript,powershell,Javascript,Powershell,基本上,我需要将结果从JavaScript传递到PowerShell 我有一个powershell脚本,可以打开IE,填写所有数据并提交表单。JavaScript返回正确的值,现在我需要将结果传递回PowerShell PowerShell脚本(调用\u cardtoken.ps1): $ie = New-Object -ComObject 'internetExplorer.Application' $ie.Visible= $true # Make it visible $cardname=
$ie = New-Object -ComObject 'internetExplorer.Application'
$ie.Visible= $true # Make it visible
$cardname="Carlos"
$cardnumber="5555555555554444"
$cardsecuritycode="123"
$cardexmonth="12"
$cardexyear="2020"
$ie.Navigate("file:///C:/Users/Admin/invoke_cardtoken.html")
While ($ie.Busy -eq $true) {Start-Sleep -Seconds 1
}
$cardnamefield = $ie.document.getElementByID('namein')
$cardnamefield.value = "$cardname"
$cardnumberfield = $ie.document.getElementByID('numberin')
$cardnumberfield.value = "$cardnumber"
$cardsecuritycodefield = $ie.document.getElementByID('cvcin')
$cardsecuritycodefield.value = "$cardsecuritycode"
$cardexmonthfield = $ie.document.getElementByID('exmonthin')
$cardexmonthfield.value = "$cardexmonth"
$cardexyearfield = $ie.document.getElementByID('exyearin')
$cardexyearfield.value = "$cardexyear"
$Link = $ie.document.getElementByID('submitin')
$Link.click()
<!-- saved from url=(0014)about:internet -->
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8" />
<script src="https://cdn.worldpay.com/v1/worldpay.js"></script>
</head>
<body>
<form id="paymentForm" method="post">
<span id="paymentErrors"></span>
<div class="form-row">
<label>Name on Card</label>
<input data-worldpay="name" name="name" type="text" id="namein"/>
</div>
<div class="form-row">
<label>Card Number</label>
<input data-worldpay="number" size="20" type="text" id="numberin"/>
</div>
<div class="form-row">
<label>Expiration (MM/YYYY)</label>
<input data-worldpay="exp-month" size="2" type="text" id="exmonthin"/>
<label> / </label>
<input data-worldpay="exp-year" size="4" type="text" id="exyearin" />
</div>
<div class="form-row">
<label>CVC</label>
<input data-worldpay="cvc" size="4" type="text" id="cvcin" />
</div>
<input type="submit" value="Place Order" id="submitin" onclick='pipePass()'/>
</form>
<script type="text/javascript">
var form = document.getElementById('paymentForm');
Worldpay.useOwnForm({
'clientKey': 'xxxx',
'form': form,
'reusable': false,
'callback': function(status, response) {
document.getElementById('paymentErrors').innerHTML = '';
if (response.error) { Worldpay.handleError(form, document.getElementById('paymentErrors'), response.error);
} else {
var token = response.token;
alert(token);
Worldpay.formBuilder(form, 'input', 'hidden', 'token', token);
form.submit();
}
}
});
</script>`enter code here`
</body>
</html>
HTML和JavaScript(invoke\u cardtoken.HTML):
$ie = New-Object -ComObject 'internetExplorer.Application'
$ie.Visible= $true # Make it visible
$cardname="Carlos"
$cardnumber="5555555555554444"
$cardsecuritycode="123"
$cardexmonth="12"
$cardexyear="2020"
$ie.Navigate("file:///C:/Users/Admin/invoke_cardtoken.html")
While ($ie.Busy -eq $true) {Start-Sleep -Seconds 1
}
$cardnamefield = $ie.document.getElementByID('namein')
$cardnamefield.value = "$cardname"
$cardnumberfield = $ie.document.getElementByID('numberin')
$cardnumberfield.value = "$cardnumber"
$cardsecuritycodefield = $ie.document.getElementByID('cvcin')
$cardsecuritycodefield.value = "$cardsecuritycode"
$cardexmonthfield = $ie.document.getElementByID('exmonthin')
$cardexmonthfield.value = "$cardexmonth"
$cardexyearfield = $ie.document.getElementByID('exyearin')
$cardexyearfield.value = "$cardexyear"
$Link = $ie.document.getElementByID('submitin')
$Link.click()
<!-- saved from url=(0014)about:internet -->
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8" />
<script src="https://cdn.worldpay.com/v1/worldpay.js"></script>
</head>
<body>
<form id="paymentForm" method="post">
<span id="paymentErrors"></span>
<div class="form-row">
<label>Name on Card</label>
<input data-worldpay="name" name="name" type="text" id="namein"/>
</div>
<div class="form-row">
<label>Card Number</label>
<input data-worldpay="number" size="20" type="text" id="numberin"/>
</div>
<div class="form-row">
<label>Expiration (MM/YYYY)</label>
<input data-worldpay="exp-month" size="2" type="text" id="exmonthin"/>
<label> / </label>
<input data-worldpay="exp-year" size="4" type="text" id="exyearin" />
</div>
<div class="form-row">
<label>CVC</label>
<input data-worldpay="cvc" size="4" type="text" id="cvcin" />
</div>
<input type="submit" value="Place Order" id="submitin" onclick='pipePass()'/>
</form>
<script type="text/javascript">
var form = document.getElementById('paymentForm');
Worldpay.useOwnForm({
'clientKey': 'xxxx',
'form': form,
'reusable': false,
'callback': function(status, response) {
document.getElementById('paymentErrors').innerHTML = '';
if (response.error) { Worldpay.handleError(form, document.getElementById('paymentErrors'), response.error);
} else {
var token = response.token;
alert(token);
Worldpay.formBuilder(form, 'input', 'hidden', 'token', token);
form.submit();
}
}
});
</script>`enter code here`
</body>
</html>
卡片上的名字
卡号
有效期(年月日)
/
CVC
var form=document.getElementById('paymentForm');
Worldpay.useOwnForm({
“clientKey”:“xxxx”,
“形式”:形式,
“可重用”:错误,
“回调”:函数(状态、响应){
document.getElementById('paymentErrors')。innerHTML='';
if(response.error){Worldpay.handleError(form,document.getElementById('paymentErrors'),response.error);
}否则{
var-token=response.token;
警报(令牌);
formBuilder(表单“输入”、“隐藏”、“令牌”、“令牌”);
表单提交();
}
}
});
`在这里输入代码`
我认为使用Powershell直接调用支付处理服务的API更容易、更干净,可以使用调用Webrequest
或调用RestMethod
。使用convertfromjson
从响应中获取令牌,然后在Powershell中继续操作。我认为使用Invoke Webrequest
或Invoke RestMethod
直接使用Powershell调用支付处理服务的API更容易、更简洁。使用convertfromjson
从响应中获取令牌,然后在Powershell中继续