📄 alipay_service.php
字号:
<?php
class alipay_service {
var $gateway = "https://www.alipay.com/cooperate/gateway.do?"; //支付接口
var $parameter; //全部需要传递的参数
var $security_code; //安全校验码
var $mysign; //签名
//构造支付宝外部服务接口控制
function alipay_service($parameter,$security_code,$sign_type = "MD5",$transport= "https") {
$this->parameter = $this->para_filter($parameter);
$this->security_code = $security_code;
$this->sign_type = $sign_type;
$this->mysign = '';
$this->transport = $transport;
if($parameter['_input_charset'] == "")
$this->parameter['_input_charset']='GBK';
if($this->transport == "https") {
$this->gateway = "https://www.alipay.com/cooperate/gateway.do?";
} else $this->gateway = "http://www.alipay.com/cooperate/gateway.do?";
$sort_array = array();
$arg = "";
$sort_array = $this->arg_sort($this->parameter);
while (list ($key, $val) = each ($sort_array)) {
$arg.=$key."=".$this->charset_encode($val,$this->parameter['_input_charset'])."&";
}
$prestr = substr($arg,0,count($arg)-2); //去掉最后一个问号
$this->mysign = $this->sign($prestr.$this->security_code);
}
function create_url() {
$url = $this->gateway;
$sort_array = array();
$arg = "";
$sort_array = $this->arg_sort($this->parameter);
while (list ($key, $val) = each ($sort_array)) {
$arg.=$key."=".urlencode($this->charset_encode($val,$this->parameter['_input_charset']))."&";
}
$url.= $arg."sign=" .$this->mysign ."&sign_type=".$this->sign_type;
return $url;
}
function arg_sort($array) {
ksort($array);
reset($array);
return $array;
}
function sign($prestr) {
$mysign = "";
if($this->sign_type == 'MD5') {
$mysign = md5($prestr);
}elseif($this->sign_type =='DSA') {
//DSA 签名方法待后续开发
die("DSA 签名方法待后续开发,请先使用MD5签名方式");
}else {
die("支付宝暂不支持".$this->sign_type."类型的签名方式");
}
return $mysign;
}
function para_filter($parameter) { //除去数组中的空值和签名模式
$para = array();
while (list ($key, $val) = each ($parameter)) {
if($key == "sign" || $key == "sign_type" || $val == "")continue;
else $para[$key] = $parameter[$key];
}
return $para;
}
//实现多种字符编码方式
function charset_encode($input,$_output_charset ,$_input_charset ="GBK" ) {
$output = "";
if(!isset($_output_charset) )$_output_charset = $this->parameter['_input_charset '];
if($_input_charset == $_output_charset || $input ==null) {
$output = $input;
} elseif (function_exists("mb_convert_encoding")){
$output = mb_convert_encoding($input,$_output_charset,$_input_charset);
} elseif(function_exists("iconv")) {
$output = iconv($_input_charset,$_output_charset,$input);
} else die("sorry, you have no libs support for charset change.");
return $output;
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -