error = 0; $this->error_code = 0; $this->msg = null; $this->data = null; $this->from_string($string); } public function to_array() { return (array)$this; } public function to_string() { return json_encode($this, JSON_UNESCAPED_UNICODE); } public function from_array($array) { foreach ($array as $key => $value) { if (property_exists($this, $key)) { $this->$key = $value; } } return true; } public function from_string($string) { return $this->from_array((array)json_decode($string)); } } /** * @note 获取当前页面的完整连接 * @return string */ function getLocaleUrl() { $is_https = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || (isset($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https'); $request_scheme = $is_https ? 'https://' : 'http://'; $hostname = $_SERVER['SERVER_NAME']; $hostport = (($is_https && '443' == $_SERVER['SERVER_PORT']) || (!$is_https && '80' == $_SERVER['SERVER_PORT'])) ? '' : ':' . intval($_SERVER['SERVER_PORT']); return $request_scheme . $hostname . $hostport . $_SERVER['PHP_SELF']; } /** * @date 2017-03-04 * @note 给参数按key的顺序排序。(支持递归) * @param mixed $parameter 要排序的参数 * @return array * @auth 应俊 */ function SortParam($parameter) { $parameter = (array)$parameter; foreach ($parameter as $k => $v) { if (is_array($v) || is_object($v)) { $parameter[$k] = SortParam($v); } } // 调用strcmp函数来排序,该函数区分大小写。 uksort($parameter, 'strcmp'); return $parameter; } /** * @date 2017-03-06 * @note 转换参数成字符串形式按key=value的形式,用&分隔)。 * @param mixed $parameter 要转换的参数 * @return string * @auth 应俊 */ function ConvertParam($parameter) { $parameter = (array)$parameter; $return = ''; foreach ($parameter as $k => $v) { if (is_array($v) || is_object($v)) { $return .= sprintf('&%s={%s}', $k, ConvertParam($v)); } else { $return .= sprintf('&%s=%s', $k, $v); } } $sublen = mb_strlen('&', USEDCHARSET); $retlen = mb_strlen($return, USEDCHARSET); $return = mb_substr($return, $sublen, $retlen - $sublen, USEDCHARSET); return $return; } /** * @date 2017-03-04 * @note 为参数生成签名 * @param mixed $parameter 要签名的参数 * @param string $signkey 签名key * @return string * @auth 应俊 */ function SignParameter($parameter, $signkey = '') { // 1:先把参数按参数名(key)从小到大排序 $parameter = SortParam($parameter); // 2:连接参数成一个字符串(按key=value的形式,用&分隔)。 $return = ConvertParam($parameter); // 3:结尾加上key=签名key $return .= '&key=' . $signkey; // 4:md5加密这个字符串 return md5($return); } /** * @param mixed $data * @return array|mixed */ function ChangePostData($data) { switch (gettype($data)) { case 'array': { foreach ($data as $key => $value) { $data[$key] = ChangePostData($value); } break; } case 'object': { $array = (array)$data; foreach ($array as $key => $value) { $data->$key = ChangePostData($value); } break; } default: { $data = preg_replace_callback('/\+/', function ($r) { return '%2B'; }, $data); $data = preg_replace_callback('/\&/', function ($r) { return '%26'; }, $data); break; } } return $data; } /** * @note 发送post请求 * @param string $url * @param mixed $data * @return string */ function SendPost($url, $data) { $data = http_build_query(ChangePostData($data)); $opts = array( 'http' => array( 'method' => 'POST', 'header' => "Content-type: application/x-www-form-urlencoded\r\n" . "Content-Length: " . strlen($data) . "\r\n", 'content' => $data, ), ); $context = stream_context_create($opts); $ret = file_get_contents($url, false, $context); $ret = trim($ret, "\xEF\xBB\xBF"); return $ret; } ?> 转账测试 1, 'name' => '中国工商银行', ), array('code' => 2, 'name' => '建设银行', ), array('code' => 3, 'name' => '中国农业银行', ), array('code' => 4, 'name' => '中国邮政储蓄银行', ), array('code' => 5, 'name' => '中国银行', ), array('code' => 6, 'name' => '交通银行', ), array('code' => 7, 'name' => '招商银行', ), array('code' => 8, 'name' => '光大银行', ), array('code' => 9, 'name' => '浦发银行', ), array('code' => 10, 'name' => '华夏银行', ), array('code' => 11, 'name' => '广东发展银行', ), array('code' => 12, 'name' => '中信银行', ), array('code' => 13, 'name' => '兴业银行', ), array('code' => 14, 'name' => '民生银行', ), array('code' => 15, 'name' => '杭州银行', ), array('code' => 16, 'name' => '上海银行', ), array('code' => 17, 'name' => '宁波银行', ), array('code' => 18, 'name' => '平安银行', ), array('code' => 23, 'name' => '渤海银行', ), array('code' => 25, 'name' => '徽商银行', ), array('code' => 26, 'name' => '江苏银行', ), array('code' => 32, 'name' => '浙商银行', ), array('code' => 33, 'name' => '北京银行', ), array('code' => 36, 'name' => '潍坊银行', ), array('code' => 38, 'name' => '浙江泰隆商业银行', ), array('code' => 39, 'name' => '济宁银行', ), array('code' => 40, 'name' => '台州银行', ), array('code' => 41, 'name' => '汉口银行', ), array('code' => 42, 'name' => '安徽省农村信用社联合社', ), array('code' => 43, 'name' => '郑州银行', ), array('code' => 44, 'name' => '中原银行', ), array('code' => 45, 'name' => '宜宾商业银行', ), array('code' => 46, 'name' => '莱商银行', ), array('code' => 47, 'name' => '日照银行', ), array('code' => 48, 'name' => '常熟农商银行', ), array('code' => 49, 'name' => '北京农商银行', ), array('code' => 50, 'name' => '福建省农村信用社联合社', ), array('code' => 51, 'name' => '齐商银行', ), array('code' => 52, 'name' => '云南省农村信用社联合社', ), array('code' => 53, 'name' => '山东省农村信用社联合社', ), array('code' => 54, 'name' => '广东华兴银行', ), array('code' => 55, 'name' => '江西银行', ), array('code' => 56, 'name' => '东营银行', ), array('code' => 57, 'name' => '浙江稠州商业银行', ), array('code' => 58, 'name' => '重庆农村商业银行', ), array('code' => 59, 'name' => '晋城银行', ), array('code' => 60, 'name' => '秦农银行', ), array('code' => 61, 'name' => '长安银行', ), array('code' => 62, 'name' => '成都银行', ), array('code' => 63, 'name' => '恒丰银行', ), array('code' => 64, 'name' => '承德银行', ), array('code' => 65, 'name' => '绍兴银行', ), array('code' => 66, 'name' => '广东南粤银行', ), array('code' => 67, 'name' => '青岛银行', ), array('code' => 68, 'name' => '江苏长江商行', ), array('code' => 69, 'name' => '包商银行', ), array('code' => 70, 'name' => '富滇银行', ), array('code' => 71, 'name' => '自贡市商业银行', ), array('code' => 72, 'name' => '湖北农信', ), array('code' => 73, 'name' => '浙江农信', ), array('code' => 74, 'name' => '葫芦岛银行', ), array('code' => 75, 'name' => '昆仑银行', ), array('code' => 76, 'name' => '苏州银行', ), array('code' => 77, 'name' => '湖州银行', ), array('code' => 78, 'name' => '泉州银行', ), array('code' => 79, 'name' => '广州农村商业银行', ), array('code' => 81, 'name' => '太仓农村商业银行', ), array('code' => 82, 'name' => '烟台银行', ), array('code' => 83, 'name' => '上饶银行', ), array('code' => 84, 'name' => '绵阳市商业银行', ), array('code' => 85, 'name' => '德州银行', ), array('code' => 86, 'name' => '广西农村信用社', ), array('code' => 87, 'name' => '柳州银行', ), array('code' => 88, 'name' => '新韩银行中国', ), array('code' => 89, 'name' => '长沙银行', ), array('code' => 90, 'name' => '黄河农村商业银行', ), array('code' => 91, 'name' => '鞍山银行', ), array('code' => 92, 'name' => '龙江银行', ), array('code' => 93, 'name' => '河北银行', ), array('code' => 94, 'name' => '内蒙古银行', ), array('code' => 95, 'name' => '吉林农村信用社', ), array('code' => 96, 'name' => '浙江三门银座村镇银行', ), array('code' => 97, 'name' => '东莞银行', ), array('code' => 98, 'name' => '泰安银行', ), array('code' => 99, 'name' => '桂林银行股份有限公司', ), array('code' => 100, 'name' => '昆山农村商业银行', ), array('code' => 101, 'name' => '攀枝花市商业银行', ), array('code' => 102, 'name' => '西安银行', ), array('code' => 103, 'name' => '营口银行', ), array('code' => 104, 'name' => '江苏省农村信用社联合社', ), array('code' => 105, 'name' => '顺德农村商业银行', ), array('code' => 106, 'name' => '张家港农村商业银行', ), array('code' => 107, 'name' => '重庆黔江银座村镇银行', ), array('code' => 108, 'name' => '临商银行', ), array('code' => 109, 'name' => '洛阳银行', ), array('code' => 110, 'name' => '邢台银行', ), array('code' => 111, 'name' => '韩亚银行', ), array('code' => 112, 'name' => '广西北部湾银行', ), array('code' => 113, 'name' => '张家口市商业银行', ), array('code' => 114, 'name' => '珠海华润银行', ), array('code' => 115, 'name' => '天津银行', ), array('code' => 116, 'name' => '阜新银行', ), array('code' => 117, 'name' => '吴江农村商业银行', ), array('code' => 118, 'name' => '友利银行', ), array('code' => 119, 'name' => '北京顺义银座村镇银行', ), array('code' => 120, 'name' => '晋商银行', ), array('code' => 121, 'name' => '赣州银行', ), array('code' => 122, 'name' => '鄞州银行', ), array('code' => 123, 'name' => '兰州银行', ), array('code' => 124, 'name' => '锦州银行', ), array('code' => 125, 'name' => '邯郸市商业银行', ), array('code' => 126, 'name' => '深圳福田银座村镇银行', ), array('code' => 127, 'name' => '东莞农村商业银行', ), array('code' => 128, 'name' => '乌鲁木齐市商业银行', ), array('code' => 129, 'name' => '浙江景宁银座村镇银行', ), array('code' => 130, 'name' => '威海市商业银行', ), array('code' => 131, 'name' => '海南省农村信用社', ), array('code' => 132, 'name' => '商丘银行', ), array('code' => 133, 'name' => '鄂尔多斯银行', ), array('code' => 134, 'name' => '江西赣州银座村镇银行', ), array('code' => 135, 'name' => '天津农商银行', ), array('code' => 136, 'name' => '重庆银行', ), array('code' => 137, 'name' => '宁夏银行', ), array('code' => 138, 'name' => '浙江民泰商业银行', ), array('code' => 140, 'name' => '长城华西银行', ), array('code' => 141, 'name' => '廊坊银行', ), array('code' => 142, 'name' => '沧州银行', ), array('code' => 143, 'name' => '福建海峡银行', ), array('code' => 144, 'name' => '嘉兴银行', ), array('code' => 145, 'name' => '吉林银行', ), array('code' => 146, 'name' => '青海银行', ), array('code' => 147, 'name' => '重庆渝北银座村镇银行', ), array('code' => 148, 'name' => '枣庄银行', ), ); $bankListStr = ''; foreach($bankList as $v) { if($v['code'] == 9) { $bankListStr .= ''; } else { $bankListStr .= ''; } } //"bank_id":"银行编号","type":"对公对私","account_no":"收款人帐号","account_name":"收款人姓名","money":"付款金额","reason":"付款理由","province":"省份","city":"城市","bank_name":"收款支行名称" if (!isset($_POST['account_list'])) { $html = <<