数组转xml可以封装到common中,重要代码以下2行
//排序
ksort($post);
//生成sign
$str = urldecode(http_build_query($post)).'&key='.$wechat['api_key'];
$sign = strtoupper(md5($str));
全部代码
//统一下单接口
public function unifiedorder()
{
//获取公众号信息
$wechat= $this->Wechat_model->getActive(); //从配置文件或数据库获取信息
$post = array();
$post['appid']= $wechat['appid'];
$post['mch_id']= $wechat['mch_id'];
$post['nonce_str']= randStr(30);
$post['body']= '积分商城兑换商品'; //商品描述
$post['out_trade_no']= rand(111111,999999);
$post['total_fee']= 1;
$post['spbill_create_ip']= $this->input->ip_address();
$post['notify_url']= 'http://baidu.com';
$post['trade_type']= 'JSAPI';
$post['openid']= 'oH0PywxNYs01UB5Zi-VRSpi3SWKY';
//排序
ksort($post);
//生成sign
$str = urldecode(http_build_query($post)).'&key='.$wechat['api_key'];
$sign = strtoupper(md5($str));
$post['sign'] = $sign;
$xml = $this->arrayToXml($post);
$re = curl($url, $xml);
}
function arrayToXml($arr){
$xml = "";
foreach ($arr as $key=>$val){
if(is_array($val)){
$xml.="".arrayToXml($val)."".$key.">";
}else{
$xml.="".$val."".$key.">";
}
}
$xml.="";
return $xml;
}