이 기사는 WeChat Enterprise 계정을 가진 개인의 지불을 실현하는 PHP 방법을 보여줍니다. 세부 사항은 다음과 같습니다.
소개 : 유통 업체, WeChat 사업에서 현금을 인출하는 방법?
WeChat과 직접 지불하십시오.
구현은 다음과 같습니다.
WeChat 결제 구성
/*wechat 결제*/'pay_weixin'=> array ( 'appid'=> 'xxxx', 'appsecret'=> 'xxxxxx,'mchid '=>'1283301801 ', // merchant number'key '=>'zhudianbaodianzhudianbaoo0527 ', // merchant'ky 'apiclient _ciclienge'key 'ky'key 'key'key 'conf/cert/apiclient_cert.pem', // 판매자 인증서 apiclient_cert.pem 'apiclient_key'=> 'conf/cert/apiclient_key.pem', // 판매자 인증서 apiclient_key.pem)
Arraytoxml
/*** xml*/function arraytoxml ($ arr) {$ xml = "<xml>"; foreach ($ ar as $ key => $ val) {if (is_numeric ($ val)) {$ xml. = "<". $ key. ">". $ val. "</". $ key. ";"; } else $ xml. = "<". $ key. "> <! [cdata [". $ val. "]> </". $ key. ">"; } $ xml. = "</xml>"; return $ xml;}인증서를 사용하여 게시물의 해당 인터페이스 URL에 XML을 제출하십시오.
/*** 기능 : 인증서를 사용하여 해당 인터페이스 URL*/function postxmlsslcurl ($ xml, $ url, $ second, $ cert, $ key) {$ ch = curl_init (); // 시간 초과 시간 curl_setopt ($ ch, curlopt_timeout, $ second? $ secon : $ this-> timeout); // 하나가있는 경우 여기에 프록시를 설정하십시오 (// curl_setopt ($ ch, curlopt_proxy, '8.8.8.8'); // curl_setopt ($ ch, curlopt_proxyport, 8080); curl_setopt ($ ch, curlopt_url, $ url); curl_setopt ($ ch, curlopt_ssl_verifypeer, false); curl_setopt ($ ch, curlopt_ssl_verifyhost, false); // 헤더 curl_setopt를 설정합니다 ($ ch, curlopt_header, false); // 결과를 문자열로 설정하고 화면 curl_setopt ($ ch, curlopt_returntransfer, true)로 출력합니다. // 인증서 설정 // 인증서 사용 : cert and key 각각 두 개의 .pem 파일에 속합니다. // 기본 형식은 pem이므로 curl_setopt ($ ch, curlopt_sslcerttype, 'pem')를 주석을 달 수 있습니다. curl_setopt ($ ch, curlopt_sslcert, $ cret); // 기본 형식은 PEM이며 Curl_SetOpt ($ ch, curlopt_sslkeytype, 'pem')를 주석에 올릴 수 있습니다. curl_setopt ($ ch, curlopt_sslkey, $ key); // 게시물 제출 방법 Curl_SetOpt ($ ch, curlopt_post, true); curl_setopt ($ ch, curlopt_postfields, $ xml); $ data = curl_exec ($ ch); // return result if ($ data) {curl_close ($ ch); $ this-> xmltoarray ($ data); } else {$ error = curl_errno ($ ch); echo "컬러 오류, 오류 코드 : $ 오류". "<br>"; curl_close ($ ch); 거짓을 반환합니다. }}기업은 개인에게 지불합니다
// 엔터프라이즈는 개별 공개 기능 paytouser ($ params, $ key, $ apcent_cert, $ apiclient_key) {$ url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; // 감지 필요한 매개 변수 if ($ params [ "partner_trade_no"] == null) {// exit ( "응용 프로그램 인터페이스, 필요한 매개 변수 partner_trade_no!". "<br>"); } elseif ($ params [ "OpenID"] == NULL) {EXIT ( "응용 프로그램 인터페이스, 필요한 매개 변수 OpenID!". "<br>"); } elseif ($ params [ "check_name"] == null) {// no_check : 실제 이름 확인 force _check : 실제 이름이없는 사용자는 검증하지 못하고 전송이 전송 될 수 없습니다) 옵션 옵션 : 진실한 이름이 확인 된 사용자만이 전송을 성공적으로 확인하지 않은 사용자만이 전송할 수 없음 인터페이스, 필요한 매개 변수 check_name이 누락되었습니다! "."<br> "); } elseif (($ params [ "check_name"] == 'force_check'또는 $ params [ "check_name"] == 'Option_check') && ($ params [ "re_user_name"] == null) {// 지불 사용자의 실제 이름. EXIT ( "응용 프로그램 인터페이스, 필요한 매개 변수 re_user_name이 누락되었습니다!". "<br>"); } elseif ($ params [ "금액"] == NULL) {EXIT ( "응용 프로그램 인터페이스, 필요한 매개 변수 금액이 누락되었습니다!". "<br>"); } elseif ($ params [ "desc"] == null) {exit ( "응용 프로그램 인터페이스, 필요한 매개 변수 desc!". "<br>"); } $ params [ "mch_appid"] = $ this-> appid; // public 계정 ID $ params [ "MCHID"] = $ this-> mCHID; // Merchant 번호 $ params [ "nonce_str"] = $ this-> createNoncErst (); // random string $ params [ 'spbill_create_ip'] = $ _Server [ '')? '192.127.1.1': $ _server [ 'remote_addr']; // ip $ params get $ params [ "sign"] = $ this-> getSign ($ params, $ key); // 서명 $ xml = $ this-> arraytoxml ($ params); return $ this-> postxmlsslcurl ($ xml, $ url, false, $ apcent_cert, $ apiclient_key);}