php 微信支付签名快速生成

数组转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;
	}

 

转载于:https://my.oschina.net/famoustone/blog/879967

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值