• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php如何实现微信企业号支付个人

php 搞代码 3年前 (2022-01-22) 23次浏览 已收录 0个评论

这篇文章主要介绍了php实现微信企业号支付个人的方法,详细分析了php微信企业号的支付配置、证书使用及支付流程相关操作技巧,需要的朋友可以参考下

本文实例讲述了php实现微信企业号支付个人的方法。分享给大家供大家参考,具体如下:

导语:分销商,微商提现怎么提?

直接用微信支付。

实现如下:

微信支付配置

/*微信支付*/  'PAY_WEIXIN'        => array(    'appid'         => 'XXXX',    'appsecret'       => 'XXXXXXX',    'mchid'         => '1283301801',                        //商户号    'key'          => 'zhudianbaodiandodozhudianbao0527',             //商户支付秘钥    'apiclient_cert'    => 'Conf/cert/apiclient_cert.pem',               //商户证书apiclient_cert.pem    'apiclient_key'     => 'Conf/cert/apiclient_key.pem',                //商户证书apiclient_key.pem  )

arrayToXml

/*** array转xml*/function arrayToXml($arr){  $xml = "<xml>";  foreach ($arr as $key=>$val)  {    if (is_numeric($val))    {        $xml.="<".$key.">".$val."</".$key.">";    }    else    $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";  }  $xml.="</xml>";  return $xml;}

使用证书,以post方式提交xml到对应的接口url

/***  作用:使用证书,以post方式提交xml到对应的接口url*/function postXmlSSLCurl($xml, $url, $second, $cert, $key){    $ch = curl_init();    //超时时间    curl_setopt($ch,CURLOPT_TIMEOUT,$second ? $second : $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);    //设置header    curl_setopt($ch,CURLOPT_HEADER,FALSE);    //要求结果为字符串且输出到屏幕上    curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);    //设置证书    //使用证书:cert 与 key 分别属于两个.pem文件    //默认格式为PEM,可以注释    curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');    curl_setopt($ch,CURLOPT_SSLCERT,$cert);    //默认格式为PEM,可以注释    curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');    curl_setopt($ch,CURLOPT_SSLKEY, $key);    //post提交方式    curl_setopt($ch,CURLOPT_POST, true);    curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);    $data = curl_exec($ch);    //返回结果    if($data){      curl_close($ch);      return $this->xmlToArray($data);    }    else {      $error = curl_errno($ch);      echo "curl出错,错误码:$error"."<br>";      curl_close($ch);      return false;    }}

企业向个人付款

//企业向个人付款public function payToUser($params, $key, $apicent_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:强校验真实姓名(未实名认证的用户会校验失败,无法转账)OPTION_CHECK:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功)      exit("退款申请接口中,缺少必填参数check_name!"."<br>");    }elseif(($params["check_name"] == 'FORCE_CHECK' or $params["check_name"] == 'OPTION_CHECK') && ($params["re_user_name"] == null)){ //收款用户真实姓名。      exit("退款申请接口中,缺少必填参数re_user_name!"."<br>");    }elseif($params["amount"] == null){      exit("退款申请接口中,缺少必填参数amount!"."<br>");    }elseif($params["desc"] == null){      exit("退款申请接口中,缺少必填参数desc!"."<br>");    }    $params["mch_appid"] = $this->appid;//公众账号ID    $params["mchid"] = $this->mchid;//商户号    $params["nonce_str"] = $this->createNoncestr();//随机字符串    $params['spbill_create_ip'] = $_SERVER['REMOTE_ADDR'] == '::1' ? '192.127.1.1' : $_SERVER['REMOTE_ADDR'];//获取IP    $params["sign"] = $this->getSign($params, $key);//签名    $xml = $this->arrayToXml($params);    return $this->postXmlSSLCurl($xml,<mark>6来源gaodaimacom搞#^代%!码网</mark><strong>搞gaodaima代码</strong> $url, false, $apicent_cert, $apiclient_key);}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php如何实现微信企业号支付个人

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址