# PowerShell test script for Raven API Version 2 # 2010-10-04 initial version function hmacsha1($params, $secret) { $hmacsha = New-Object System.Security.Cryptography.HMACSHA1 $hmacsha.key = [Text.Encoding]::ASCII.GetBytes($secret) $signature = $hmacsha.ComputeHash([System.Text.Encoding]::ASCII.GetBytes($params)) $hex = [string]::join("", ($signature | % {([int]$_).toString('x2')})) return $hex } function post($url, $data) { $wc = New-Object System.Net.WebClient $wc.QueryString = $data $webpage = $wc.UploadValues($url, "POST", $data) $response = [System.Text.Encoding]::ASCII.GetString($webpage) return $response } function unsignedHelloTest() { $url = "https://demo.deepcovelabs.com/realtime/hello" $user = "ernest" $data = new-object System.Collections.Specialized.NameValueCollection $data.Add("RAPIVersion","2") $data.Add("UserName",$user) $response = post $url $data Write-Host $response } function signedHelloTest() { $url = "https://demo.deepcovelabs.com/realtime/hello" $user = "ernest" $secret = "all good men die young" $requestid = [guid]::NewGuid() $timestamp = Get-Date -date (Get-Date).ToUniversalTime() -format s $valuestosign = $user + $timestamp + $requestid $signature = hmacsha1 $valuestosign $secret $data = new-object System.Collections.Specialized.NameValueCollection $data.Add("RAPIVersion","2") $data.Add("UserName",$user) $data.Add("TimeStamp",$timestamp) $data.Add("RequestID",$requestid) $data.Add("Signature",$signature) $response = post $url $data Write-Host $response } function signedDebitTest() { $url = "https://demo.deepcovelabs.com/realtime/submit" $user = "ernest" $secret = "all good men die young" $requestid = [guid]::NewGuid() $timestamp = Get-Date -date (Get-Date).ToUniversalTime() -format s $file = "dailyfile" $routing = "840033" $type = "cc_debit" $amount = "100" $currency = "CAD" $card = "4000000000000010" $expiry = "0933" $valuestosign = $user + $timestamp + $requestid + $type + $amount + $currency $signature = hmacsha1 $valuestosign $secret $data = new-object System.Collections.Specialized.NameValueCollection $data.Add("RAPIVersion","2") $data.Add("UserName",$user) $data.Add("TimeStamp",$timestamp) $data.Add("RequestID",$requestid) $data.Add("Signature",$signature) $data.Add("Filename",$file) $data.Add("PaymentRoutingNumber",$routing) $data.Add("PaymentType",$type) $data.Add("Amount",$amount) $data.Add("CurrencyCode",$currency) $data.Add("CardNumber",$card) $data.Add("Expiry",$expiry) $response = post $url $data Write-Host $response } Write-Host "`nHello Test - Unsigned" -foregroundcolor green unsignedHelloTest Write-Host "`nHello Test - Signed" -foregroundcolor green signedHelloTest Write-Host "`nDebit Test - Signed" -foregroundcolor green signedDebitTest Write-Host "`nPress any key to continue ..." $key = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")