public function getIpsBanks() { $cacheName = "ipsbanklist"; if (!S($cacheName)) { $wsdl = "http://webservice.ips.com.cn/web/Service.asmx?wsdl"; $client = new SoapClient($wsdl); $payConfig = FS("Webconfig/payconfig"); $MerCode = $payConfig['ips']['MerCode']; $SignMD5 = md5($MerCode . $payConfig['ips']['MerKey']); $param = array('MerCode' => $MerCode, 'SignMD5' => $SignMD5); $ret = $client->GetBankList($param); $ipsErrArr = C('IPS_ERR_ARR'); if (array_key_exists($ret->GetBankListResult, $ipsErrArr)) { ajaxmsg($ipsErrArr[$ret->GetBankListResult], 0); } else { $bankList = explode('#', urldecode($ret->GetBankListResult)); $list = array(); $bankimgs = C('IPS_BANK_IMG'); $count = 0; foreach ($bankList as $bankLine) { $bankArr = explode('|', $bankLine); if (count($bankArr) == 3) { $list[$count]['bank_name'] = $bankArr[0]; $list[$count]['bank_alias'] = $bankArr[1]; $list[$count]['bank_code'] = $bankArr[2]; $list[$count]['bank_img'] = $bankimgs[$bankArr[2]]; $count++; } } $list = array_sort($list, 'bank_code'); S($cacheName, $list, 3600 * 1000); $this->assign('list', $list); $data['html'] = $this->fetch('ipsbanks'); ajaxmsg($data); } } else { $this->assign('list', S($cacheName)); $data['html'] = $this->fetch('ipsbanks'); ajaxmsg($data); } }
/** * 商户端获取银行列表查询(WS) * @param int $MerCode * @param unknown_type $cert_md5 * @param unknown_type $ws_url * @return * pMerCode 6 “平台”账号 否 由IPS颁发的商户号 pErrCode 4 返回状态 否 0000成功; 9999失败; * pErrMsg 100 返回信息 否 状态0000:成功 除此乊外:反馈实际原因 * pBankList 银行名称|银行卡别名|银行卡编号#银行名称|银行卡别名|银行卡编号 * BankList[] = array('name'=>银行名称,'sub_name'=>银行卡别名,'id'=>银行卡编号); */ function GetBankList($MerCode, $cert_md5, $ws_url) { $str = $MerCode . $cert_md5; $pSign = md5($str); try { $url = $ws_url; $client = new SoapClient($url); // 接口方法:public string GetBankList(string argMerCode, string argSign) $param = array('argMerCode' => $MerCode, 'argSign' => $pSign); $arrResult = $client->GetBankList($param); $resultStr = $arrResult->GetBankListResult; /* * pMerCode 6 “平台”账号 否 由IPS颁发的商户号 pErrCode 4 返回状态 否 0000成功; 9999失败; * pErrMsg 100 返回信息 否 状态0000:成功 除此乊外:反馈实际原因 * pBankList 银行名称|银行卡别名|银行卡编号#银行名称|银行卡别名|银行卡编号 */ require_once APP_ROOT_PATH . 'system/collocation/ips/xml.php'; $str3ParaInfo = @XML_unserialize($resultStr); //print_r($str3ParaInfo);exit; $str3Req = $str3ParaInfo['pReq']; $result = array(); $result['pErrCode'] = $str3Req["pErrCode"]; $result['pErrMsg'] = $str3Req["pErrMsg"]; $result['pBankList'] = $str3Req["pBankList"]; $list = explode('#', $result['pBankList']); $BankList = array(); foreach ($list as $bank) { $b = explode('|', $bank); if (count($b) >= 3) { $BankList[] = array('name' => $b[0], 'sub_name' => $b[1], 'id' => $b[2]); } } $result['BankList'] = $BankList; } catch (SOAPFault $e) { $result = array(); $result['pErrCode'] = 9999; $result['pErrMsg'] = print_r($e, 1); $result['pBankList'] = ''; } return $result; }
protected function is_bank() { $payConfig = FS("Webconfig/payconfig"); if ($payConfig['ips']['enable'] == 1) { Vendor('Nusoap.nusoap'); $submitdata['MerCode'] = $payConfig['ips']['MerCode']; $submitdata['SignMD5'] = strtolower(MD5($payConfig['ips']['MerCode'] . $payConfig['ips']['MerKey'])); //$ws="http://webservice.ips.net.cn/web/Service.asmx?wsdl"; //测试环境 $ws = "http://webservice.ips.com.cn/web/Service.asmx?wsdl"; //正式环境 $client = new SoapClient($ws); //$client->__getFunctions(); //$client->__getTypes(); $result = $client->GetBankList($submitdata); $decode_bank = urldecode($result->GetBankListResult); $array = explode('#', $decode_bank); $bank_all = array(); foreach ($array as $v) { $bank_all[] = explode('|', $v); } } return $bank_all; }