kospay/pay/www/qiye.xjs

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&notify_url=$notify_url&sign_type=$sign_type&timestamp=$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&notify_url=$notify_url&sign_type=$sign_type&sign=$sign&timestamp=$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&notify_url=$notify_url&sign_type=$sign_type&timestamp=$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&notify_url=$notify_url&sign_type=$sign_type&sign=$sign&timestamp=$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&notify_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&notify_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