183 lines
7.1 KiB
Bash
Executable File
183 lines
7.1 KiB
Bash
Executable File
#!/bin/bash
|
|
while read kos
|
|
do
|
|
[ "${#kos}" -le "1" ]&&break;
|
|
koss="$kos
|
|
$koss"
|
|
done
|
|
[ "$conntyp" = "POST" ]&&{
|
|
zj=$(echo "$koss"|awk '{IGNORECASE=1}/Content-Length:/{gsub("\r","",$2);print$2}')
|
|
##[ "${zj:-0}" -gt "128" ]&&exit 0
|
|
hhhkkkk="$(head -c$zj)"
|
|
ck=($(echo "$koss"|awk -F'[|:]' '{IGNORECASE=1}$1=="Cookie"{print $3}'))
|
|
sqlstart="SELECT passd,grups,isok,feilv,ckuser,ckname,ckkey FROM user WHERE userid = '${ck[2]}'"
|
|
dada="$($MYSQLS -e "$sqlstart" 2>>$0.errlog)"
|
|
sdata=($dada)
|
|
cksec=${ck[4]}
|
|
yunse=$(echo -n "$REMOTE_HOST${sdata[2]}${sdata[1]}${ck[2]}${sdata[0]}${dateddd:0:6}"|md5sum|tr -dc [0-9])
|
|
|
|
[ "$yunse" = "$cksec" ]||{
|
|
echo "HTTP/1.1 200 ok
|
|
Connection: close
|
|
Pragma: no-cache
|
|
Cache-Control: no-cache
|
|
Cache-Control: no-store
|
|
Cache-Control: private
|
|
Server: kos-1.0
|
|
Access-Control-Expose-Headers: ztm
|
|
ztm: noes
|
|
Content-Language:zh-CN,zh
|
|
Content-Type: text/plain;charset=utf-8
|
|
"
|
|
exit 0
|
|
}
|
|
[ "${ck[3]}" = "0" -o "${ck[3]}" = "1" ]||{
|
|
echo "HTTP/1.1 200 ok
|
|
Connection: close
|
|
Pragma: no-cache
|
|
Cache-Control: no-cache
|
|
Cache-Control: no-store
|
|
Cache-Control: private
|
|
Server: kos-1.0
|
|
Access-Control-Expose-Headers: ztm
|
|
ztm: okey
|
|
Content-Language:zh-CN,zh
|
|
Content-Type: text/plain;charset=utf-8
|
|
|
|
此功能需要管理员权限!"
|
|
exit 0
|
|
}
|
|
q=($hhhkkkk)
|
|
|
|
testpay(){
|
|
sqlstart="SELECT type,appids,zzdgr,ckkeys FROM qiye WHERE appids='$hhhkkkk';"
|
|
dadas="$($MYSQLS -e "$sqlstart" 2>>$0.errlog)"
|
|
mdatay=($dadas)
|
|
urlencode() {
|
|
local LANG=C
|
|
local length="${#1}"
|
|
for (( i = 0; i < length; i++ )); do
|
|
local c="${1:i:1}"
|
|
case $c in
|
|
[a-zA-Z0-9.~_-]) printf "$c" ;;
|
|
*) printf '%%%02X' "'$c" ;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
d="$(cat /proc/sys/kernel/random/uuid|tr -dc '[0-9a-f]')"
|
|
case "${mdatay[0]}" in
|
|
"zfbdmf")
|
|
app_id="${mdatay[1]}"
|
|
method="alipay.trade.precreate"
|
|
charset="utf-8"
|
|
sign_type="RSA2"
|
|
timestamp="$(date "+%F %T")"
|
|
version="1.0"
|
|
out_biz_no="$d"
|
|
total_amount="0.01"
|
|
subject="测试支付接口"
|
|
notify_url="http://krepay.com:81/$d"
|
|
body="cs"
|
|
biz_content="{\"out_trade_no\":\"$out_biz_no\",\"total_amount\":\"$total_amount\",\"subject\":\"$subject\",\"body\":\"$body\",\"qr_code_timeout_express\":\"5m\"}"
|
|
wait_sign="app_id=$app_id&biz_content=$biz_content&charset=$charset&method=$method¬ify_url=$notify_url&sign_type=$sign_type×tamp=$timestamp&version=$version"
|
|
sign="$(echo -n "$wait_sign"|openssl dgst -sign /krepay/pay/ca/${app_id}_private.pem -SHA256 |base64|tr -d '\n')"
|
|
sign="$(urlencode "$sign")"
|
|
geturl="app_id=$app_id&biz_content=$biz_content&charset=$charset&method=$method¬ify_url=$notify_url&sign_type=$sign_type&sign=$sign×tamp=$timestamp&version=$version"
|
|
|
|
wget -UUOSBOX -qO- -T3 -t3 "https://openapi.alipay.com/gateway.do?$geturl"|awk -F\" '{if($10=="Success")$18="支付参数配置正确";print$18}'
|
|
;;
|
|
"zfbpc")
|
|
app_id="${mdatay[1]}"
|
|
method="alipay.trade.page.pay"
|
|
charset="utf-8"
|
|
sign_type="RSA2"
|
|
timestamp="$(date "+%F %T")"
|
|
version="1.0"
|
|
out_biz_no="$d"
|
|
total_amount="0.01"
|
|
notify_url="http://krepay.com:81/$d"
|
|
subject="测试支付接口"
|
|
body="cs"
|
|
biz_content="{\"out_trade_no\":\"$out_biz_no\",\"product_code\":\"FAST_INSTANT_TRADE_PAY\",\"total_amount\":\"$total_amount\",\"subject\":\"$subject\",\"body\":\"$body\",\"timeout_express\":\"10m\"\"qr_pay_mode\":\"4\"}"
|
|
wait_sign="app_id=$app_id&biz_content=$biz_content&charset=$charset&method=$method¬ify_url=$notify_url&sign_type=$sign_type×tamp=$timestamp&version=$version"
|
|
sign="$(echo -n "$wait_sign"|openssl dgst -sign /krepay/pay/ca/${app_id}_private.pem -SHA256 |base64|tr -d '\n')"
|
|
sign="$(urlencode "$sign")"
|
|
geturl="https://openapi.alipay.com/gateway.do?app_id=$app_id&biz_content=$biz_content&charset=$charset&method=$method¬ify_url=$notify_url&sign_type=$sign_type&sign=$sign×tamp=$timestamp&version=$version"
|
|
wget -UUOSBOX -qO- -T3 -t3 "$geturl"|awk -F\" '{if($2=="qrCode"){print "支付参数配置正确"}else{split($3,w,">|<");if($2=="Todo")print w[2]}}'|iconv -f GBK -t utf-8
|
|
;;
|
|
"zfbold")
|
|
partner="${mdatay[1]}"
|
|
zfbkey="${mdatay[3]}"
|
|
body="cs"
|
|
notify_url="http://krepay.com:81/$d"
|
|
out_trade_no="$d"
|
|
payment_type="1"
|
|
show_url="http://baidu.com"
|
|
service="create_direct_pay_by_user"
|
|
qr_pay_mode="4"
|
|
subject="测试支付接口"
|
|
sta="_input_charset=utf-8&body=$body¬ify_url=$notify_url&out_trade_no=$out_trade_no&partner=$partner&payment_type=$payment_type&qr_pay_mode=$qr_pay_mode&seller_id=$partner&service=$service&show_url=$show_url&subject=$subject&total_fee=$jine$zfbkey"
|
|
stb="$(echo -n $sta|md5sum|tr -dc '[0-9a-f]')"
|
|
url="https://mapi.alipay.com/gateway.do?_input_charset=utf-8&body=$body¬ify_url=$notify_url&out_trade_no=$out_trade_no&partner=$partner&payment_type=$payment_type&qr_pay_mode=$qr_pay_mode&seller_id=$partner&service=$service&show_url=$show_url&subject=$subject&total_fee=$jine&sign_type=MD5&sign=$stb"
|
|
wget -qT3 -t1 -UUOSBOX -O- "$url"|awk -F\" '{if($2=="qrCode"){print "支付参数配置正确"}else{split($3,w,">|<");if($2=="Todo")print w[2]}}'|iconv -f GBK -t utf-8
|
|
;;
|
|
esac
|
|
}
|
|
|
|
case "$1" in
|
|
"delone")
|
|
[ "${ck[3]}" = "0" ]&&{
|
|
sqlstart="DELETE FROM qiye WHERE id='${hhhkkkk//[^0-9]/}';"
|
|
dada="$($MYSQLS -e "$sqlstart" 2>>$0.errlog)"&&{
|
|
ztm=okay
|
|
status='删除成功!'
|
|
}||status='删除失败,未知错误!'
|
|
}||status='删除失败,权限不足!'
|
|
;;
|
|
"zfzhanghaoadd")
|
|
app_id=${q[3]}
|
|
[ "${q[0]}" = "wx" ]&&sqlstart="insert into qiye(userid,gsname,type,enable,appids,mchid,ckkeys,secert,zzdgr,maxjine,ctime) values('${ck[2]}','${q[1]}','${q[0]}','${q[2]}','${app_id}','${q[4]}','${q[5]}','${q[6]}','${q[8]}','${q[7]}','$(date "+%F %T")');"||sqlstart="insert into qiye(userid,gsname,type,enable,appids,ckkeys,zzdgr,maxjine,ctime) values('${ck[2]}','${q[1]}','${q[0]}','${q[2]}','${app_id}','${q[4]}','${q[6]}','${q[5]}','$(date "+%F %T")');"
|
|
dada="$($MYSQLS -e "$sqlstart" 2>>$0.errlog)"&&{
|
|
ztm=okay
|
|
openssl genrsa -out $rpath/ca/${app_id}_private.pem 2048
|
|
openssl rsa -in $rpath/ca/${app_id}_private.pem -pubout -out $rpath/ca/${app_id}_public.pem
|
|
status='录入成功!'
|
|
}||status='录入失败,未知错误!'
|
|
;;
|
|
"xiugai")
|
|
[ "${ck[3]}" = "0" ]&&{
|
|
[ "${q[1]}" = "wx" ]&&sqlstart="UPDATE qiye SET type='${q[1]}',gsname='${q[2]}',enable='${q[3]}',appids='${q[4]}',mchid='${q[5]}',ckkeys='${q[6]}',secert='${q[7]}',zzdgr='${q[9]}',maxjine='${q[8]}' WHERE id='${q[0]//[^0-9]/}'"||sqlstart="UPDATE qiye SET type='${q[1]}',gsname='${q[2]}',enable='${q[3]}',appids='${q[4]}',ckkeys='${q[5]}',zzdgr='${q[7]}',maxjine='${q[6]}' WHERE id='${q[0]}'"
|
|
dada="$($MYSQLS -e "$sqlstart" 2>>$0.errlog)"&&{
|
|
ztm=okay
|
|
status='修改成功!'
|
|
}||status='修改失败,未知错误!'
|
|
}||status='修改失败,权限不足,请联系上级!'
|
|
;;
|
|
"getpublickey")
|
|
getgs="$(cat $rpath/ca/${hhhkkkk//[^0-9]/}_public.pem 2>/dev/null)"&&{
|
|
ztm=okay
|
|
status="$(echo "$getgs"|grep -v 'PUBLIC KEY'|tr -d '\n')"
|
|
}||status='未找到应用公钥'
|
|
;;
|
|
"qiyetestpay")
|
|
status="$(testpay)"
|
|
;;
|
|
esac
|
|
|
|
|
|
echo "HTTP/1.1 200 ok
|
|
Connection: close
|
|
Pragma: no-cache
|
|
Cache-Control: no-cache
|
|
Cache-Control: no-store
|
|
Cache-Control: private
|
|
Server: kos-1.0
|
|
Access-Control-Expose-Headers: ztm
|
|
ztm: ${ztm:-okey}
|
|
Content-Language:zh-CN,zh
|
|
Content-Type: text/plain;charset=utf-8
|
|
|
|
$status"
|
|
}||exit 0
|