版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010481239/article/details/79704619
/**
* array转xml
*/
public 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 curl_post_ssl($url, $vars, $second = 30) {
$ch = curl_init();
//超时时间
curl_setopt($ch, CURLOPT_TIMEOUT, $second);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//以下两种方式需选择一种
/* * ***** 此处必须为文件服务器根目录绝对路径 不可使用变量代替******** */
curl_setopt($ch, CURLOPT_SSLCERT, "路径");
curl_setopt($ch, CURLOPT_SSLKEY, "路径");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
$data = curl_exec($ch);
if ($data) {
curl_close($ch);
dump($data);
return $data;
} else {
$error = curl_errno($ch);
echo "call faild, errorCode:$error\n";
curl_close($ch);
return false;
}
}
//企业向个人付款
public function payToUser($openid, $desc, $amount) {
//微信付款到个人的接口
$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';
$params["mch_appid"] = ''; //公众账号appid
$params["mchid"] = ''; //商户号 微信支付平台账号
$params["nonce_str"] = 'abcdefghijklmnopqrstuvwxyz' . mt_rand(100, 999); //随机字符串
$params["partner_trade_no"] = mt_rand(10000000, 99999999); //商户订单号
$params["amount"] = $amount; //金额
$params["desc"] = $desc; //企业付款描述
$params["openid"] = $openid; //用户openid
$params["check_name"] = 'NO_CHECK'; //不检验用户姓名
$params['spbill_create_ip'] = $_SERVER['REMOTE_ADDR']; //获取IP
//生成签名(签名算法后面详细介绍)
$str = 'amount=' . $params["amount"] . '&check_name=' . $params["check_name"] . '&desc=' . $params["desc"] . '&mch_appid=' . $params["mch_appid"] . '&mchid=' . $params["mchid"] . '&nonce_str=' . $params["nonce_str"] . '&openid=' . $params["openid"] . '&partner_trade_no=' . $params["partner_trade_no"] . '&spbill_create_ip=' . $params['spbill_create_ip'] . '&key=这里也要填';
//md5加密 转换成大写
$sign = strtoupper(md5($str));
$params["sign"] = $sign; //签名
$xml = $this->arrayToXml($params);
dump($xml);
return $this->curl_post_ssl($url, $xml);
dump(curl_post_ssl($url, $xml));
}
完整代码请加QQ:961052877