php 微信退款证书
2023-09-27 14:27:47 时间
function request_post($data, $url, $is_pem=0){
$ch = curl_init();
//指定URL
curl_setopt($ch, CURLOPT_URL, $url);
//设定请求后返回结果
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//声明使用POST方式来进行发送
curl_setopt($ch, CURLOPT_POST, 1);
//发送什么数据呢
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//忽略证书
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
if($is_pem == 1){
curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM'); //sslCertType
curl_setopt($ch,CURLOPT_SSLCERT,'../key/wxpay/apiclient_cert.pem');//证书路径
curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM'); //sslKeyType
curl_setopt($ch,CURLOPT_SSLKEY,'../key/wxpay/apiclient_key.pem');//证书路径
}
//忽略header头信息
curl_setopt($ch, CURLOPT_HEADER, 0);
//设置超时时间
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
//发送请求
$output = curl_exec($ch);
//关闭curl
curl_close($ch);
//返回数据
return $output;
}
其中
退款方法
public function refundPay($data){
$url = "https://api.mch.weixin.qq.com/secapi/pay/refund";
$nonce_str = str_random(32);
try {
$dataSign = [
'appid' => $this->appid,
'mch_id' => $this->mch_id,
'nonce_str' => $nonce_str,
'transaction_id' => $data['payment_id'],
'out_trade_no' => $data['order_sn'],
'out_refund_no' => $data['order_refund_sn'],
'total_fee' => $data['price'],
'refund_fee' => $data['price']
];
$sign = $this->getSign($dataSign);
$dataSign['sign'] = $sign;
$dataXml = $this->array2Xml($dataSign);
$result = $this->request_post($dataXml, $url,1);
return $this->xml2Array($result);
}catch (\Exception $e){
Log::info($e);
return false;
}
}
相关文章
- PHP+SSE服务器向客户端推送消息
- PHP开发微信被动回复消息遇到的大坑
- php - 时间操作
- PHP全栈学习笔记10
- 《PHP和MySQL Web开发从新手到高手(第5版)》一一2.4 创建数据库
- 《写给PHP开发者的Node.js学习指南》一2.3 一个PHP示例页面
- PHP生成随机字符串与唯一字符串
- php反射获取类和方法中的注释
- PHP正则表达式教程
- 微信公众号开发之创建菜单栏代码示例(php)
- php源码安装常用配置参数和说明
- PHP求解一个值是否为质数
- php扩展php-redis安装与使用
- PHP代码网站防范SQL注入漏洞攻击的建议
- 高流量站点NGINX与PHP-fpm配置优化(译)
- PHP-Java-Bridge使用笔记