数组转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 = "<xml>";
foreach ($arr as $key=>$val){
if(is_array($val)){
$xml.="<".$key.">".arrayToXml($val)."</".$key.">";
}else{
$xml.="<".$key.">".$val."</".$key.">";
}
}
$xml.="</xml>";
return $xml;
}