$data[ partner_trade_no ]=date( YmdHis ).mt_rand(1000,9999);
//额度 客户键入的取现额度必须乘以100
$data[ amount ] = $money;
//公司支付叙述
$data[ desc ] = 公司支付到本人零钱 ;
//客户openid
$data[ openid ] = $openid;
//不检测客户名字
$data[ check_name ] = NO_CHECK ;
//获得IP
$data[ spbill_create_ip ]=$_SERVER[ SERVER_ADDR ];
//商家密匙
$data[ key ]= ;
//商家资格证书 商家服务平台的API安全性资格证书免费下载
$data[ apiclient_cert.pem ]
$data[ apiclient_key.pem ]
$trade_no = date( YmdHis ).mt_rand(1000,9999);
$res = $this- pay($openid,$trade_no,$money*100, 手机微信取现 );
//結果复印
if($res[ result_code ]== SUCCESS ){
echo json_encode([
status = 3,
message = 取现取得成功! ,
]);
}elseif ($res[ err_code ]== SENDNUM_LIMIT ){
echo json_encode([
status = 4,
message = 取现不成功! ,
code = 每天仅能取现一次 ,
]);
}else{
echo json_encode([
status = 5,
message = 取现不成功! ,
code = $res[ err_code ],
]);
}
}
}else{
echo json_encode([
status = 5,
message = 未检验到您当今手机微信账户~ ,
]);
}
}
$params[ nonce_str ]= suiji .mt_rand(100,999);
$params[ partner_trade_no ] = $trade_no;
$params[ amount ]= $money;
$params[ desc ]= $desc;
$params[ openid ]= $openid;
$params[ check_name ]= NO_CHECK ;
$params[ spbill_create_ip ] = $_SERVER[ SERVER_ADDR ];
//转化成签字
$str = amount= .$params[ amount ]. check_name= .$params[ check_name ]. desc= .$params[ desc ]. mch_appid= .$params[ mch_appid ]. mchid= .$params[ mchid ]. nonce_str= .$params[ nonce_str ]. openid= .$params[ openid ]. partner_trade_no= .$params[ partner_trade_no ]. spbill_create_ip= .$params[ spbill_create_ip ]. key=商家密匙 ;
//md5数据加密 变换成英文大写
$sign = strtoupper(md5($str));
//转化成签字
$params[ sign ] = $sign;
//结构XML数据信息
$xmldata = $this- array_to_xml($params); //数字能量数组转XML
$url= mmpaymkttransfers/prom otion/transfers ;
//推送post恳求
$res = $this- curl_post_ssl($url, $xmldata); //curl恳求
if(!$res){
return array( status = 1,
msg = 网络服务器联接不成功 );
}
//支付結果剖析
$content = $this- xml_to_array($res); //xml转数字能量数组
return $content;
}
public function curl_post_ssl($url, $xmldata, $second=30,$aHeader=array()){
$ch = curl_init();
//请求超时時间
curl_setopt($ch,CURLOPT_TIMEOUT,$second);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
//这儿设定代理商,假如有得话
//curl_setopt($ch,CURLOPT_PROXY, 10.206.30.98
//curl_setopt($ch,CURLOPT_PROXYPORT, 8080);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
//默认设置文件格式为PEM,能够注解
curl_setopt($ch,CURLOPT_SSLCERTTYPE, PEM );
//肯定详细地址可让用 dirname(__DIR__)复印,假如并不是肯定详细地址会报 58 不正确
curl_setopt($ch,CURLOPT_SSLCERT, 肯定详细地址/apiclient_cert.pem );
curl_setopt($ch,CURLOPT_SSLKEYTYPE, PEM );
curl_setopt($ch,CURLOPT_SSLKEY, 肯定详细地址/apiclient_key.pem );
if( count($aHeader) = 1 ){
curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
}
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$xmldata);
$data = curl_exec($ch);
if($data){
curl_close($ch);
return $data;
}
else {
$error = curl_errno($ch);
echo call faild, errorCode:$error\n ;
die();
curl_close($ch);
return false;
}
}
libxml_disable_entity_loader(true);
$values = json_decode(json_encode(simplexml_load_string($xml, SimpleXMLElement , LIBXML_NOCDATA)), true);
return $values;
}