首页 > 微信应用  > 

小程序开发之企业付款

小程序开发之企业付款
写这篇文章的目的主要是由于在微信公众平台提供的SDK中并没有提供此功能的SDK实现, 其实最后实现还是借助 微信公众平台开发文档 和 SDK 。 企业付款的应用场景: 公众号向已关注用户付款,比如处理退款、财务结算等

写这篇文章的目的主要是由于在微信公众平台提供的sdk中并没有提供此功能的sdk实现,

其实最后实现还是借助 微信公众平台开发文档 和 SDK 。

企业付款的应用场景: 公众号向已关注用户付款,比如处理退款、财务结算等

先说一下实现思路:

在SDK中自带类库的基础上扩展WxMchPay组件, 实现企业付款功能的扩展。

话不多说,上代码, 下面是继承SDK,实现企业付款的组件:

$parameters参数参考: 企业付款API的文档

<?php// 引入SDKimport(&#39;Common.Util.WxPay&#39;);/** * 微信企业付款操作类 * Author : Max.wen * DateTime: <15/9/16 11:00> */class WxMchPay extends Wxpay_client_pub{ /** * API 参数 * @var array * &#39;mch_appid&#39; # 公众号APPID * &#39;mchid&#39; # 商户号 * &#39;device_info&#39; # 设备号 * &#39;nonce_str&#39; # 随机字符串 * &#39;partner_trade_no&#39; # 商户订单号 * &#39;openid&#39; # 收款用户openid * &#39;check_name&#39; # 校验用户姓名选项 针对实名认证的用户 * &#39;re_user_name&#39; # 收款用户姓名 * &#39;amount&#39; # 付款金额 * &#39;desc&#39; # 企业付款描述信息 * &#39;spbill_create_ip&#39; # Ip地址 * &#39;sign&#39; # 签名 */ public $parameters = []; public function construct() { $this->url = &#39;https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers&#39;; $this->curl_timeout = WxPayConf_pub::CURL_TIMEOUT; } /** * 生成请求xml数据 * @return string */ public function createXml() { $this->parameters[&#39;mch_appid&#39;] = WxPayConf_pub::APPID; $this->parameters[&#39;mchid&#39;] = WxPayConf_pub::MCHID; $this->parameters[&#39;nonce_str&#39;] = $this->createNoncestr(); $this->parameters[&#39;sign&#39;] = $this->getSign($this->parameters); return $this->arrayToXml($this->parameters); } /** * 作用:使用证书,以post方式提交xml到对应的接口url */ function postXmlSSLCurl($xml,$url,$second=30) { $ch = curl_init(); //超时时间 curl_setopt($ch,CURLOPT_TIMEOUT,$second); //这里设置代理,如果有的话 //curl_setopt($ch,CURLOPT_PROXY, &#39;8.8.8.8&#39;); //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); //设置证书 curl_setopt($ch,CURLOPT_CAINFO, WxPayConf_pub::SSLROOTCA_PATH); //使用证书:cert 与 key 分别属于两个.pem文件 //默认格式为PEM,可以注释 curl_setopt($ch,CURLOPT_SSLCERTTYPE,&#39;PEM&#39;); curl_setopt($ch,CURLOPT_SSLCERT, WxPayConf_pub::SSLCERT_PATH); //默认格式为PEM,可以注释 curl_setopt($ch,CURLOPT_SSLKEYTYPE,&#39;PEM&#39;); curl_setopt($ch,CURLOPT_SSLKEY, WxPayConf_pub::SSLKEY_PATH); //post提交方式 curl_setopt($ch,CURLOPT_POST, true); curl_setopt($ch,CURLOPT_POSTFIELDS,$xml); $data = curl_exec($ch); //返回结果 if($data){ curl_close($ch); return $data; } else { $error = curl_errno($ch); echo "curl出错,错误码:$error"."<br>"; echo "<a href=&#39;http://curl.haxx.se/libcurl/c/libcurl-errors.html&#39;>错误原因查询</a></br>"; curl_close($ch); return false; } }}

小程序开发之企业付款由讯客互联微信应用栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“小程序开发之企业付款