首页> 技术问答 > >PHP中微信小程序企业付款到零钱

PHP中微信小程序企业付款到零钱

时间:


 根据微信小程序API文档企业付款到零钱具体PHP方法直接上代码



	public function payFwxPrice($appid,$mchid,$price,$openid,$desc='测试',$check_name=''){
		 $key='*****';//从微信公众平台获取的¥jey
		 $total_amount = (100) * $price;
		 $data=array(
					   'mch_appid'=>$appid,//商户账号appid
					   'mchid'=>$mchid,    //商户号
					   'nonce_str'=>$this->RandStr(32),//随机字符串
					   'partner_trade_no'=> date('ymdhis').rand(1000,9999),//商户订单号
					   'openid'=> $openid,//用户openid
					   'check_name'=>'NO_CHECK',//校验用户姓名选项,
					   'amount'=>$total_amount,//金额
					   'desc'=> $desc,//企业付款描述信息
					   'spbill_create_ip'=> '**********',//ip地址
					 );

		
				  $secrect_key=$key;///这个就是个api密码。md5 32位。
				  $data=array_filter($data);
				  ksort($data);
				  $str='';
				  foreach($data as $k=>$v) {
				   $str.=$k.'='.$v.'&';
				  }
				  $str.='key='.$secrect_key;
				  $data['sign']=md5($str);
				  //生成签名算法

					
				  $xml=$this->arrayToXml($data);
				 
				  $url='https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; //调用接口
				  $res=$this::curl_post_ssl($url,$xml);
				  $return=$this->xmlToArray($res);
				  
				  return $return;
				  
	}
	
	//数组转换成xml
    private 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;
    }

    
       //xml转换成数组
    private function xmlToArray($xml) {
        //禁止引用外部xml实体 
        libxml_disable_entity_loader(true);
        $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
        $val = json_decode(json_encode($xmlstring), true);
        return $val;
    }