Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
33cadfb9
Unverified
Commit
33cadfb9
authored
Aug 18, 2022
by
neil
Committed by
GitHub
Aug 18, 2022
Browse files
Merge pull request #4254 from Hobby-Student/dev
Upgrade KAS API
parents
d5b649a1
b42532af
Changes
1
Show whitespace changes
Inline
Side-by-side
dnsapi/dns_kas.sh
View file @
33cadfb9
...
@@ -5,55 +5,81 @@
...
@@ -5,55 +5,81 @@
# Environment variables:
# Environment variables:
#
#
# - $KAS_Login (Kasserver API login name)
# - $KAS_Login (Kasserver API login name)
# - $KAS_Authtype (Kasserver API auth type. Default:
sha1
)
# - $KAS_Authtype (Kasserver API auth type. Default:
plain
)
# - $KAS_Authdata (Kasserver API auth data.)
# - $KAS_Authdata (Kasserver API auth data.)
#
#
# Author: Martin Kammerlander, Phlegx Systems OG <martin.kammerlander@phlegx.com>
# Author: squared GmbH <github@squaredgmbh.de>
# Updated by: Marc-Oliver Lange <git@die-lang.es>
# Credits:
# Credits: Inspired by dns_he.sh. Thanks a lot man!
# Inspired by dns_he.sh. Thanks a lot man!
# Git repo: https://github.com/phlegx/acme.sh
# Previous version by Martin Kammerlander, Phlegx Systems OG <martin.kammerlander@phlegx.com>
# TODO: Better Error handling
# Previous update by Marc-Oliver Lange <git@die-lang.es>
# KASAPI SOAP guideline by https://github.com/o1oo11oo/kasapi.sh
########################################################################
########################################################################
KAS_Api
=
"https://kasapi.kasserver.com/soap/KasApi.php"
KAS_Api_GET
=
"
$(
_get
"https://kasapi.kasserver.com/soap/wsdl/KasApi.wsdl"
)
"
KAS_Auth
=
"https://kasapi.kasserver.com/soap/KasAuth.php"
KAS_Api
=
"
$(
echo
"
$KAS_Api_GET
"
|
tr
-d
' '
|
grep
-i
"<soap:addresslocation="
|
sed
"s/='/
\n
/g"
|
grep
-i
"http"
|
sed
"s/'
\/
>//g"
)
"
_info
"[KAS] -> API URL
$KAS_Api
"
KAS_Auth_GET
=
"
$(
_get
"https://kasapi.kasserver.com/soap/wsdl/KasAuth.wsdl"
)
"
KAS_Auth
=
"
$(
echo
"
$KAS_Auth_GET
"
|
tr
-d
' '
|
grep
-i
"<soap:addresslocation="
|
sed
"s/='/
\n
/g"
|
grep
-i
"http"
|
sed
"s/'
\/
>//g"
)
"
_info
"[KAS] -> AUTH URL
$KAS_Auth
"
KAS_default_ratelimit
=
5
# TODO - Every response delivers a ratelimit (seconds) where KASAPI is blocking a request.
######## Public functions #####################
######## Public functions #####################
dns_kas_add
()
{
dns_kas_add
()
{
_fulldomain
=
$1
_fulldomain
=
$1
_txtvalue
=
$2
_txtvalue
=
$2
_info
"
###
-> Using DNS-01 All-inkl/Kasserver hook"
_info
"
[KAS]
-> Using DNS-01 All-inkl/Kasserver hook"
_info
"
###
-> Adding
$_fulldomain
DNS TXT entry on
A
ll-inkl/Kasserver"
_info
"
[KAS]
-> Adding
$_fulldomain
DNS TXT entry on
a
ll-inkl
.com
/Kasserver"
_info
"
###
-> Retriving Credential Token"
_info
"
[KAS]
-> Retriving Credential Token"
_get_credential_token
_get_credential_token
_info
"
###
-> Check and Save Props"
_info
"
[KAS]
-> Check and Save Props"
_check_and_save
_check_and_save
_info
"
###
-> Checking Zone and Record_Name"
_info
"
[KAS]
-> Checking Zone and Record_Name"
_get_zone_and_record_name
"
$_fulldomain
"
_get_zone_and_record_name
"
$_fulldomain
"
_info
"
###
-> Checking for existing Record entries"
_info
"
[KAS]
-> Checking for existing Record entries"
_get_record_id
_get_record_id
# If there is a record_id, delete the entry
# If there is a record_id, delete the entry
if
[
-n
"
$_record_id
"
]
;
then
if
[
-n
"
$_record_id
"
]
;
then
_info
"Existing records found. Now deleting old entries"
_info
"
[KAS] ->
Existing records found. Now deleting old entries"
for
i
in
$_record_id
;
do
for
i
in
$_record_id
;
do
_delete_RecordByID
"
$i
"
_delete_RecordByID
"
$i
"
done
done
else
else
_info
"No record found."
_info
"
[KAS] ->
No record found."
fi
fi
_info
"
###
-> Creating TXT DNS record"
_info
"
[KAS]
-> Creating TXT DNS record"
action
=
"add_dns_settings"
action
=
"add_dns_settings"
kasReqParam
=
"{
\"
record_name
\"
:
\"
$_record_name
\"
,
\"
record_type
\"
:
\"
TXT
\"
,
\"
record_data
\"
:
\"
$_txtvalue
\"
,
\"
record_aux
\"
:
\"
0
\"
,
\"
zone_host
\"
:
\"
$_zone
\"
}"
kasReqParam
=
"
\"
record_name
\"
:
\"
$_record_name
\"
"
kasReqParam
=
"
$kasReqParam
,
\"
record_type
\"
:
\"
TXT
\"
"
kasReqParam
=
"
$kasReqParam
,
\"
record_data
\"
:
\"
$_txtvalue
\"
"
kasReqParam
=
"
$kasReqParam
,
\"
record_aux
\"
:
\"
0
\"
"
kasReqParam
=
"
$kasReqParam
,
\"
zone_host
\"
:
\"
$_zone
\"
"
response
=
"
$(
_callAPI
"
$action
"
"
$kasReqParam
"
)
"
response
=
"
$(
_callAPI
"
$action
"
"
$kasReqParam
"
)
"
_debug2
"[KAS] -> Response"
"
$response
"
_debug2
"Response"
"
$response
"
if
[
-z
"
$response
"
]
;
then
_info
"[KAS] -> Response was empty, please check manually."
if
!
_contains
"
$response
"
"TRUE"
;
then
return
1
_err
"An unkown error occurred, please check manually."
elif
_contains
"
$response
"
"<SOAP-ENV:Fault>"
;
then
faultstring
=
"
$(
echo
"
$response
"
|
tr
-d
'\n\r'
|
sed
"s/<faultstring>/
\n
=> /g"
|
sed
"s/<
\/
faultstring>/
\n
/g"
|
grep
"=>"
|
sed
"s/=> //g"
)
"
case
"
${
faultstring
}
"
in
"record_already_exists"
)
_info
"[KAS] -> The record already exists, which must not be a problem. Please check manually."
;;
*
)
_err
"[KAS] -> An error =>
$faultstring
<= occurred, please check manually."
return
1
;;
esac
elif
!
_contains
"
$response
"
"<item><key xsi:type=
\"
xsd:string
\"
>ReturnString</key><value xsi:type=
\"
xsd:string
\"
>TRUE</value></item>"
;
then
_err
"[KAS] -> An unknown error occurred, please check manually."
return
1
return
1
fi
fi
return
0
return
0
...
@@ -63,29 +89,29 @@ dns_kas_rm() {
...
@@ -63,29 +89,29 @@ dns_kas_rm() {
_fulldomain
=
$1
_fulldomain
=
$1
_txtvalue
=
$2
_txtvalue
=
$2
_info
"
###
-> Using DNS-01 All-inkl/Kasserver hook"
_info
"
[KAS]
-> Using DNS-01 All-inkl/Kasserver hook"
_info
"
###
-> Cleaning up after All-inkl/Kasserver hook"
_info
"
[KAS]
-> Cleaning up after All-inkl/Kasserver hook"
_info
"
###
-> Removing
$_fulldomain
DNS TXT entry on All-inkl/Kasserver"
_info
"
[KAS]
-> Removing
$_fulldomain
DNS TXT entry on All-inkl/Kasserver"
_info
"
###
-> Retriving Credential Token"
_info
"
[KAS]
-> Retriving Credential Token"
_get_credential_token
_get_credential_token
_info
"
###
-> Check and Save Props"
_info
"
[KAS]
-> Check and Save Props"
_check_and_save
_check_and_save
_info
"
###
-> Checking Zone and Record_Name"
_info
"
[KAS]
-> Checking Zone and Record_Name"
_get_zone_and_record_name
"
$_fulldomain
"
_get_zone_and_record_name
"
$_fulldomain
"
_info
"
###
-> Getting Record ID"
_info
"
[KAS]
-> Getting Record ID"
_get_record_id
_get_record_id
_info
"
###
-> Removing entries with ID:
$_record_id
"
_info
"
[KAS]
-> Removing entries with ID:
$_record_id
"
# If there is a record_id, delete the entry
# If there is a record_id, delete the entry
if
[
-n
"
$_record_id
"
]
;
then
if
[
-n
"
$_record_id
"
]
;
then
for
i
in
$_record_id
;
do
for
i
in
$_record_id
;
do
_delete_RecordByID
"
$i
"
_delete_RecordByID
"
$i
"
done
done
else
# Cannot delete or unkown error
else
# Cannot delete or unkown error
_info
"No record_id found that can be deleted. Please check manually."
_info
"
[KAS] ->
No record_id found that can be deleted. Please check manually."
fi
fi
return
0
return
0
}
}
...
@@ -95,11 +121,27 @@ dns_kas_rm() {
...
@@ -95,11 +121,27 @@ dns_kas_rm() {
_delete_RecordByID
()
{
_delete_RecordByID
()
{
recId
=
$1
recId
=
$1
action
=
"delete_dns_settings"
action
=
"delete_dns_settings"
kasReqParam
=
"
{
\"
record_id
\"
:
\"
$recId
\"
}
"
kasReqParam
=
"
\"
record_id
\"
:
\"
$recId
\"
"
response
=
"
$(
_callAPI
"
$action
"
"
$kasReqParam
"
)
"
response
=
"
$(
_callAPI
"
$action
"
"
$kasReqParam
"
)
"
_debug2
"Response"
"
$response
"
_debug2
"[KAS] -> Response"
"
$response
"
if
!
_contains
"
$response
"
"TRUE"
;
then
_info
"Either the txt record is not found or another error occurred, please check manually."
if
[
-z
"
$response
"
]
;
then
_info
"[KAS] -> Response was empty, please check manually."
return
1
elif
_contains
"
$response
"
"<SOAP-ENV:Fault>"
;
then
faultstring
=
"
$(
echo
"
$response
"
|
tr
-d
'\n\r'
|
sed
"s/<faultstring>/
\n
=> /g"
|
sed
"s/<
\/
faultstring>/
\n
/g"
|
grep
"=>"
|
sed
"s/=> //g"
)
"
case
"
${
faultstring
}
"
in
"record_id_not_found"
)
_info
"[KAS] -> The record was not found, which perhaps is not a problem. Please check manually."
;;
*
)
_err
"[KAS] -> An error =>
$faultstring
<= occurred, please check manually."
return
1
;;
esac
elif
!
_contains
"
$response
"
"<item><key xsi:type=
\"
xsd:string
\"
>ReturnString</key><value xsi:type=
\"
xsd:string
\"
>TRUE</value></item>"
;
then
_err
"[KAS] -> An unknown error occurred, please check manually."
return
1
fi
fi
}
}
# Checks for the ENV variables and saves them
# Checks for the ENV variables and saves them
...
@@ -112,7 +154,7 @@ _check_and_save() {
...
@@ -112,7 +154,7 @@ _check_and_save() {
KAS_Login
=
KAS_Login
=
KAS_Authtype
=
KAS_Authtype
=
KAS_Authdata
=
KAS_Authdata
=
_err
"No auth details provided. Please set user credentials using the
\$
KAS_Login,
\$
KAS_Authtype, and
\$
KAS_Authdata environment variables."
_err
"
[KAS] ->
No auth details provided. Please set user credentials using the
\$
KAS_Login,
\$
KAS_Authtype, and
\$
KAS_Authdata environment variables."
return
1
return
1
fi
fi
_saveaccountconf_mutable KAS_Login
"
$KAS_Login
"
_saveaccountconf_mutable KAS_Login
"
$KAS_Login
"
...
@@ -125,9 +167,18 @@ _check_and_save() {
...
@@ -125,9 +167,18 @@ _check_and_save() {
# See: https://github.com/Neilpang/acme.sh/wiki/DNS-API-Dev-Guide
# See: https://github.com/Neilpang/acme.sh/wiki/DNS-API-Dev-Guide
_get_zone_and_record_name
()
{
_get_zone_and_record_name
()
{
action
=
"get_domains"
action
=
"get_domains"
kasReqParam
=
"[]"
response
=
"
$(
_callAPI
"
$action
"
)
"
response
=
"
$(
_callAPI
"
$action
"
"
$kasReqParam
"
)
"
_debug2
"[KAS] -> Response"
"
$response
"
_debug2
"Response"
"
$response
"
if
[
-z
"
$response
"
]
;
then
_info
"[KAS] -> Response was empty, please check manually."
return
1
elif
_contains
"
$response
"
"<SOAP-ENV:Fault>"
;
then
faultstring
=
"
$(
echo
"
$response
"
|
tr
-d
'\n\r'
|
sed
"s/<faultstring>/
\n
=> /g"
|
sed
"s/<
\/
faultstring>/
\n
/g"
|
grep
"=>"
|
sed
"s/=> //g"
)
"
_err
"[KAS] -> Either no domains were found or another error =>
$faultstring
<= occurred, please check manually."
return
1
fi
zonen
=
"
$(
echo
"
$response
"
|
sed
's/<item>/\n/g'
|
sed
-r
's/(.*<key xsi:type="xsd:string">domain_name<\/key><value xsi:type="xsd:string">)(.*)(<\/value.*)/\2/'
|
sed
'/^</d'
)
"
zonen
=
"
$(
echo
"
$response
"
|
sed
's/<item>/\n/g'
|
sed
-r
's/(.*<key xsi:type="xsd:string">domain_name<\/key><value xsi:type="xsd:string">)(.*)(<\/value.*)/\2/'
|
sed
'/^</d'
)
"
domain
=
"
$1
"
domain
=
"
$1
"
temp_domain
=
"
$(
echo
"
$1
"
|
sed
's/\.$//'
)
"
temp_domain
=
"
$(
echo
"
$1
"
|
sed
's/\.$//'
)
"
...
@@ -142,59 +193,80 @@ _get_zone_and_record_name() {
...
@@ -142,59 +193,80 @@ _get_zone_and_record_name() {
_zone
=
"
${
rootzone
}
."
_zone
=
"
${
rootzone
}
."
temp_record_name
=
"
$(
echo
"
$temp_domain
"
|
sed
"s/
$rootzone
//g"
)
"
temp_record_name
=
"
$(
echo
"
$temp_domain
"
|
sed
"s/
$rootzone
//g"
)
"
_record_name
=
"
$(
echo
"
$temp_record_name
"
|
sed
's/\.$//'
)
"
_record_name
=
"
$(
echo
"
$temp_record_name
"
|
sed
's/\.$//'
)
"
_debug
"Zone:"
"
$_zone
"
_debug
"
[KAS] ->
Zone:"
"
$_zone
"
_debug
"Domain:"
"
$domain
"
_debug
"
[KAS] ->
Domain:"
"
$domain
"
_debug
"Record_Name:"
"
$_record_name
"
_debug
"
[KAS] ->
Record_Name:"
"
$_record_name
"
return
0
return
0
}
}
# Retrieve the DNS record ID
# Retrieve the DNS record ID
_get_record_id
()
{
_get_record_id
()
{
action
=
"get_dns_settings"
action
=
"get_dns_settings"
kasReqParam
=
"
{
\"
zone_host
\"
:
\"
$_zone
\"
,
\"
nameserver
\"
:
\"
ns5.kasserver.com
\"
}
"
kasReqParam
=
"
\"
zone_host
\"
:
\"
$_zone
\"
"
response
=
"
$(
_callAPI
"
$action
"
"
$kasReqParam
"
)
"
response
=
"
$(
_callAPI
"
$action
"
"
$kasReqParam
"
)
"
_debug2
"[KAS] -> Response"
"
$response
"
if
[
-z
"
$response
"
]
;
then
_info
"[KAS] -> Response was empty, please check manually."
return
1
elif
_contains
"
$response
"
"<SOAP-ENV:Fault>"
;
then
faultstring
=
"
$(
echo
"
$response
"
|
tr
-d
'\n\r'
|
sed
"s/<faultstring>/
\n
=> /g"
|
sed
"s/<
\/
faultstring>/
\n
/g"
|
grep
"=>"
|
sed
"s/=> //g"
)
"
_err
"[KAS] -> Either no domains were found or another error =>
$faultstring
<= occurred, please check manually."
return
1
fi
_debug2
"Response"
"
$response
"
_record_id
=
"
$(
echo
"
$response
"
|
tr
-d
'\n\r'
|
sed
"s/<item xsi:type=
\"
ns2:Map
\"
>/
\n
/g"
|
grep
-i
"
$_record_name
"
|
grep
-i
">TXT<"
|
sed
"s/<item><key xsi:type=
\"
xsd:string
\"
>record_id<
\/
key><value xsi:type=
\"
xsd:string
\"
>/=>/g"
|
sed
"s/<
\/
value><
\/
item>/
\n
/g"
|
grep
"=>"
|
sed
"s/=>//g"
)
"
_record_id
=
"
$(
echo
"
$response
"
|
sed
's/<item xsi:type="ns2:Map">/\n/g'
|
sed
-n
-e
"/^.*
$_record_name
.*/Ip"
|
sed
-n
-e
"/^.*
$_txtvalue
.*/Ip"
|
sed
-r
's/(.*record_id<\/key><value xsi:type="xsd:string">)([0-9]+)(<\/value.*)/\2/'
)
"
_debug
"[KAS] -> Record Id: "
"
$_record_id
"
_debug
"Record Id: "
"
$_record_id
"
return
0
return
0
}
}
# Retrieve credential token
# Retrieve credential token
_get_credential_token
()
{
_get_credential_token
()
{
data
=
"<SOAP-ENV:Envelope xmlns:SOAP-ENV=
\"
http://schemas.xmlsoap.org/soap/envelope/
\"
xmlns:ns1=
\"
urn:xmethodsKasApiAuthentication
\"
xmlns:xsd=
\"
http://www.w3.org/2001/XMLSchema
\"
xmlns:xsi=
\"
http://www.w3.org/2001/XMLSchema-instance
\"
xmlns:SOAP-ENC=
\"
http://schemas.xmlsoap.org/soap/encoding/
\"
SOAP-ENV:encodingStyle=
\"
http://schemas.xmlsoap.org/soap/encoding/
\"
><SOAP-ENV:Body><ns1:KasAuth>"
baseParamAuth
=
"
\"
kas_login
\"
:
\"
$KAS_Login
\"
"
data
=
"
$data
<Params xsi:type=
\"
xsd:string
\"
>{
\"
kas_login
\"
:
\"
$KAS_Login
\"
,
\"
kas_auth_type
\"
:
\"
$KAS_Authtype
\"
,
\"
kas_auth_data
\"
:
\"
$KAS_Authdata
\"
,
\"
session_lifetime
\"
:600,
\"
session_update_lifetime
\"
:
\"
Y
\"
,
\"
session_2fa
\"
:123456}</Params>"
baseParamAuth
=
"
$baseParamAuth
,
\"
kas_auth_type
\"
:
\"
$KAS_Authtype
\"
"
data
=
"
$data
</ns1:KasAuth></SOAP-ENV:Body></SOAP-ENV:Envelope>"
baseParamAuth
=
"
$baseParamAuth
,
\"
kas_auth_data
\"
:
\"
$KAS_Authdata
\"
"
baseParamAuth
=
"
$baseParamAuth
,
\"
session_lifetime
\"
:600"
baseParamAuth
=
"
$baseParamAuth
,
\"
session_update_lifetime
\"
:
\"
Y
\"
"
data
=
'<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:xmethodsKasApiAuthentication" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:KasAuth><Params xsi:type="xsd:string">{'
data
=
"
$data$baseParamAuth
}</Params></ns1:KasAuth></SOAP-ENV:Body></SOAP-ENV:Envelope>"
_debug
"Be frindly and wait
10
seconds by default before calling KAS API."
_debug
"
[KAS] ->
Be fri
e
ndly and wait
$KAS_default_ratelimit
seconds by default before calling KAS API."
_sleep
10
_sleep
$KAS_default_ratelimit
contentType
=
"text/xml"
contentType
=
"text/xml"
export
_H1
=
"SOAPAction:
ns1:
KasAuth"
export
_H1
=
"SOAPAction:
urn:xmethodsKasApiAuthentication#
KasAuth"
response
=
"
$(
_post
"
$data
"
"
$KAS_Auth
"
""
"POST"
"
$contentType
"
)
"
response
=
"
$(
_post
"
$data
"
"
$KAS_Auth
"
""
"POST"
"
$contentType
"
)
"
_debug2
"Response"
"
$response
"
_debug2
"
[KAS] ->
Response"
"
$response
"
_credential_token
=
"
$(
echo
"
$response
"
|
tr
'\n'
' '
|
sed
's/.*return xsi:type="xsd:string">\(.*\)<\/return>/\1/'
|
sed
's/<\/ns1:KasAuthResponse\(.*\)Envelope>.*//'
)
"
_credential_token
=
"
$(
echo
"
$response
"
|
tr
'\n'
' '
|
sed
's/.*return xsi:type="xsd:string">\(.*\)<\/return>/\1/'
|
sed
's/<\/ns1:KasAuthResponse\(.*\)Envelope>.*//'
)
"
_debug
"Credential Token: "
"
$_credential_token
"
_debug
"
[KAS] ->
Credential Token: "
"
$_credential_token
"
return
0
return
0
}
}
_callAPI
()
{
_callAPI
()
{
kasaction
=
$1
kasaction
=
$1
kasReqParams
=
$2
kasReqParams
=
$2
baseParam
=
"<Params xsi:type=
\"
xsd:string
\"
>{
\"
kas_login
\"
:
\"
$KAS_Login
\"
,
\"
kas_auth_type
\"
:
\"
session
\"
,
\"
kas_auth_data
\"
:
\"
$_credential_token
\"
,
\"
kas_action
\"
:
\"
$kasaction
\"
,
\"
KasRequestParams
\"
:
$kasReqParams
"
baseParamClosing
=
"}</Params>"
data
=
"<SOAP-ENV:Envelope xmlns:SOAP-ENV=
\"
http://schemas.xmlsoap.org/soap/envelope/
\"
xmlns:ns1=
\"
urn:xmethodsKasApi
\"
xmlns:xsd=
\"
http://www.w3.org/2001/XMLSchema
\"
xmlns:xsi=
\"
http://www.w3.org/2001/XMLSchema-instance
\"
xmlns:SOAP-ENC=
\"
http://schemas.xmlsoap.org/soap/encoding/
\"
SOAP-ENV:encodingStyle=
\"
http://schemas.xmlsoap.org/soap/encoding/
\"
><SOAP-ENV:Body><ns1:KasApi>"
data
=
"
$data$baseParam$baseParamClosing
"
data
=
"
$data
</ns1:KasApi></SOAP-ENV:Body></SOAP-ENV:Envelope>"
_debug2
"Request"
"
$data
"
_debug
"Be frindly and wait 10 seconds by default before calling KAS API."
baseParamAuth
=
"
\"
kas_login
\"
:
\"
$KAS_Login
\"
"
_sleep 10
baseParamAuth
=
"
$baseParamAuth
,
\"
kas_auth_type
\"
:
\"
session
\"
"
baseParamAuth
=
"
$baseParamAuth
,
\"
kas_auth_data
\"
:
\"
$_credential_token
\"
"
data
=
'<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:xmethodsKasApi" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:KasApi><Params xsi:type="xsd:string">{'
data
=
"
$data$baseParamAuth
,
\"
kas_action
\"
:
\"
$kasaction
\"
"
if
[
-n
"
$kasReqParams
"
]
;
then
data
=
"
$data
,
\"
KasRequestParams
\"
:{
$kasReqParams
}"
fi
data
=
"
$data
}</Params></ns1:KasApi></SOAP-ENV:Body></SOAP-ENV:Envelope>"
_debug2
"[KAS] -> Request"
"
$data
"
_debug
"[KAS] -> Be friendly and wait
$KAS_default_ratelimit
seconds by default before calling KAS API."
_sleep
$KAS_default_ratelimit
contentType
=
"text/xml"
contentType
=
"text/xml"
export
_H1
=
"SOAPAction:
ns1:
KasApi"
export
_H1
=
"SOAPAction:
urn:xmethodsKasApi#
KasApi"
response
=
"
$(
_post
"
$data
"
"
$KAS_Api
"
""
"POST"
"
$contentType
"
)
"
response
=
"
$(
_post
"
$data
"
"
$KAS_Api
"
""
"POST"
"
$contentType
"
)
"
_debug2
"Response"
"
$response
"
_debug2
"
[KAS] ->
Response"
"
$response
"
echo
"
$response
"
echo
"
$response
"
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment