php 위 챗 공중 호 개발 위 챗 기업 개인 에 게 지불

본 논문 의 사례 는 phop 위 챗 기업 이 개인 에 게 지불 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
아래 위 챗 결제 중 기업 결제 에 관 한 소개 및 인 코딩 은 위 챗 결제 개발 문서 에서 참고 합 니 다인터넷 주소그림 참조.

기업 이 지불 하고 기업 이 사용자 에 게 지불 하 는 기능 을 제공 하 며 기업 이 API 인 터 페 이 스 를 통 해 지불 하거나 위 챗 을 통 해 업 체 플랫폼 홈 페이지 기능 조작 으로 지불 하 는 것 을 지원 한다.
기업 결제 업 무 는 위 챗 결제 사업 자 플랫폼 의 자금 관리 능력 을 바탕 으로 사업 자가 편리 하 게 기업 이 개인 에 게 지불 하 는 것 을 돕 기 위해 일부 개발 능력 이 있 는 사업 자 를 대상 으로 API 를 통 해 기업 결 제 를 완성 하 는 기능 을 제공한다.<
예 를 들 어 현재 의 보험업 계 는 고객 에 게 보험 을 취소 하고 지급 하 며 배상 을 처리한다.
다음은 PHP 가 기업 결제 업 무 를 실현 하 는 데 사용 되 는 코드 세 션 입 니 다.참고 하 시기 바 랍 니 다.

/*         */
<!--              -->
<!--   $openid  openid,$re_user_name      ,$amount    ,$partner_trade_no     ,$desc  -->
<!--         ,  true,    false-->
private function weixin_transfer_money($openid,$re_user_name,$amount,$partner_trade_no,$desc){
 //    
 //   appid(   )--mch_appid(   )--1(  )
 //       appid
 $data['mch_appid']="**************"; 
 
 //   --mchid--1
 //       
 $data['mchid']="*************";
 
 //   --device_info--0
 //     --nonce_str--1
 $data['nonce_str']=$this->get_unique_value();
 
 //  --sign--1
 $data['sign']="";
 
 //     --partner_trade_no--1
 $data['partner_trade_no']=$partner_trade_no;
 
 //  openid--openid--1
 $data['openid']=$openid;
 
 //        --check_name--1
 $data['check_name']="OPTION_CHECK";
 
 //      --re_user_name--0
 $data['re_user_name']=$re_user_name;
 
 //  --amount--1
 $data['amount']=$amount;
 
 //        --desc--1
 $data['desc']=$desc;
 
 //IP  --spbill_create_ip--1
 $data['spbill_create_ip']=$_SERVER['LOCAL_ADDR'];
 
 //    
 //         
 //API  ,    appsecret
 $appsecret="*************";
 $data=array_filter($data);
 ksort($data);
 $str="";
 foreach($data as $k=>$v){
   $str.=$k."=".$v."&";
 }
 $str.="key=".$appsecret;
 $data['sign']=strtoupper(MD5($str));
 
 /*
     :
  1.        xml
  2.    
  3.          
  4.                 
  5.        
  6.        
 */
 
 
 
 //        
 $url="https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
 
 //1.           xml
 $xml=$this->arraytoxml($data);
 //2.      
 $res=$this->curl($xml,$url);
 //3.      xml     
 $arr=$this->xmltoarray($res);
 
 //4.                 ,             ,$arr        
 $transfer['partner_trade_no']=$data['partner_trade_no'];
 $transfer['request_data']=serialize($data);  
 $transfer['response_data']=serialize($arr);
 if($arr['return_code']=="SUCCESS" && $arr['result_code']=="SUCCESS"){
   //5.          6.        
 $transfer['success']=1;
 $transfer_res['success']=1;
 }else{
 $transfer['success']=0;
 $transfer_res['success']=0;
 $transfer_res['desc']=$arr['return_msg'];
 }
 $transfer['add_time']=time();
 
 D("weixin_transfer")->add($transfer);
  
 return $transfer_res;
}
 
//   32        
private function get_unique_value(){
  $str=uniqid(mt_rand(),1);
  $str=sha1($str);
  return md5($str);
}
//       xml
private function arraytoxml($arr){
  $xml="<xml>";
  foreach($arr as $k=>$v){
    $xml.="<".$k.">".$v."</".$k.">";
  }
  $xml.="</xml>";
  return $xml;
}
//  xml     
private function xmltoarray($xml){
  //      xml  
  libxml_disable_entity_loader(true);
  $xmlstring=simplexml_load_string($xml,"SimpleXMLElement",LIBXML_NOCDATA);
  $arr=json_decode(json_encode($xmlstring),true);
  return $arr;
}
 
//  curl  
private function curl($param="",$url) {
  $postUrl = $url;
  $curlPost = $param;
  //   curl
  $ch = curl_init();                   
  //      
  curl_setopt($ch, CURLOPT_URL,$postUrl);         
  //  header
  curl_setopt($ch, CURLOPT_HEADER, 0);          
  //               
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);      
  //post    
  curl_setopt($ch, CURLOPT_POST, 1);           
  //    HTTP Header( )     
  curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);      
  //           
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
 
  //        
  curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'\cert\apiclient_cert.pem'); 
  //         
  curl_setopt($ch,CURLOPT_SSLKEY,getcwd().'\cert\apiclient_key.pem'); 
  //  curl
  $data = curl_exec($ch);                 
  //  curl
  curl_close($ch);
  //    
  return $data;
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기