微信支付退款

微信退款感觉比支付宝要容易一点

官网api:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1

直接上代码:

    public function refound(){
        $ref= md5("appid=1233213&mch_id=1233213&nonce_str=2194kfhaafaf384&op_user_id=1461000002"
            . "&out_refund_no=201704181551358393&out_trade_no=201704181551358393&refund_fee=1&total_fee=1"
            . "&key=yudsd7rfer7dsadh0UfdoReraRdsad4d");//sign加密MD5
        $refund=array(
            ‘appid‘=>‘12323123‘,
            ‘mch_id‘=>‘123213213‘,//商户号
            ‘nonce_str‘=>‘2194kfhaafaf384‘,//随机字符串
            ‘op_user_id‘=>‘1461000002‘,
            ‘out_refund_no‘=>‘201704181551358393‘,
            ‘out_trade_no‘=>‘201704181551358393‘,
            ‘refund_fee‘=>‘1‘,
            ‘total_fee‘=>‘1‘,
            ‘sign‘=>$ref
        );
        $url="https://api.mch.weixin.qq.com/secapi/pay/refund";;//微信退款地址,post请求
        $xml=ToXml($refund);
        $ch=curl_init();
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_HEADER,1);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,1);//证书检查
        curl_setopt($ch,CURLOPT_SSLCERTTYPE,‘pem‘);
        curl_setopt($ch,CURLOPT_SSLCERT,‘plugins/payment/weixin/cert/apiclient_cert.pem‘);
        curl_setopt($ch,CURLOPT_SSLCERTTYPE,‘pem‘);
        curl_setopt($ch,CURLOPT_SSLKEY,‘plugins/payment/weixin/cert/apiclient_key.pem‘);
        curl_setopt($ch,CURLOPT_POST,1);
        curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);
        $data=curl_exec($ch);
        if($data){ //返回来的是xml格式需要转换成数组再提取值,用来做更新
            curl_close($ch);
            dump($data);
        }else{
            $error=curl_errno($ch);
            echo "curl出错,错误代码:$error"."<br/>";
            echo "<a href=‘http://curl.haxx.se/libcurl/c/libcurs.html‘>;错误原因查询</a><br/>";
            curl_close($ch);
            echo false;
        }
    }
function ToXml($arr){    if(!is_array($arr)        || count($arr) <= 0)    {        throw new WxPayException("数组数据异常!");    }

$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;}
 

最主要证书的添加,基本上就可以走通的

时间: 2024-10-06 16:50:47

微信支付退款的相关文章

java使用AES-256-ECB(PKCS7Padding)解密——微信支付退款通知接口指定解密方式

1.场景 在做微信支付退款通知接口时,微信对通知的内容做了加密,并且指定用 AES256 解密,官方指定的解密方式如下: 2.导包 <!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on --> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</art

微信支付退款接口

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); X509Certificate cer = new X509Certificate(cert, password,X509KeyStorageFlags.PersistKeySet|X509KeyStorageFlags.Exportable|X509Ke

9. PHP接入微信支付订单、退款订单、转款订单的查询

微信并未提供一个统一的查询接口.对应每种查询均需要不同的api.为了便于大家在项目中使用,忽略细节.对以上三种进行了封装.通过工厂的方式降低调用成本. $wxconfig = [ 'app_id' => 'wxxxx', // 公众账号ID 'mch_id' => 'xxxx',// 商户id 'md5_key' => 'xxxxxx',// md5 秘钥 'notify_url' => 'http://test.helei.com/pay-notify.html', 'time_

微信支付之退款

先吐槽下微信的文档和demo,重要的步骤信息没有强调清楚,.net的demo就没有跑成功过. 1.微信扫码登录 2.微信PC端支付 几经摸索才走通这个退款功能.下面介绍下微信支付退款功能的开发步骤: 一.下载证书并导入到系统 微信退款是需要证书的,这个证书不是官方demo中的证书,而是需要自己在微信商户平台中的api安全栏下载的证书,在官方的证书使用实例的一个word文档看到下面话:C#有一点需要注意,除了在代码中使用apiclient_cert.p12之外还需要将该证书导入操作系统才能使用,1

小黑式烂代码之微信APP支付 + 退款(JAVA实现)

首先,你得先有微信开发平台账号密码还需要开通应用,然后还有微信服务商平台商户版账号(这些我都是给产品经理拿的) 其次我认为你先去看一看微信开发平台的文档!  https://pay.weixin.qq.com/wiki/doc/api/index.html 这里有很多种支付,我就采用APP支付来说了(会了APP支付其实H5支付都差不多的!) 进来后是这样的,随便看看'APP支付那几篇文章'讲的流程!,看完后知道大概了就可以看看'API列表了' 我们后台开发需要关注的就是这三个API了! 1 /*

微信、支付宝各种支付退款

java 版微信.支付宝各种支付退款 前言 最近整理了一下自己做过的各种支付退款的业务,并整理如下,只是大致思路代码不保证百分百没有问题但是都是经过我以前实际验证过并投入生产环境的,省略了一些和支付无关的业务流程. java 微信App支付 参考时序图了解大致流程. 微信App支付文档 大致步骤: 步骤1:用户在商户APP中选择商品,提交订单,选择微信支付. 步骤2:商户后台收到用户支付单,调用微信支付统一下单接口.参见统一下单API. 步骤3:统一下单接口返回正常的prepay_id,再按签名

浅析微信支付:申请退款、退款回调接口、查询退款

本文是[浅析微信支付]系列文章的第八篇,主要讲解商户如何处理微信申请退款.退款回调.查询退款接口,其中有一些坑的地方,会着重强调. 浅析微信支付系列已经更新七篇了哟-,没有看过的朋友们可以看一下哦. 浅析微信支付:查询订单和关闭订单 浅析微信支付:支付结果通知 浅析微信支付:统一下单接口 在实际场景中,申请退款和退款回调接口是比较常用到的微信支付接口,这里我们会讲原路返回方式的退款,还有的是使用直接为用户付款到零钱.现金红包等方式来退款,此种情况主要会出现在客服退款时,不是全部退款的情况,也有的

WooCommerce 微信支付插件

WooCommerce 是 WordPress 平台上使用最广泛的电子商务插件,也是世界范围内使用量最大的独立电商平台, 我原来对微信支付是有些看不惯的,甚至觉得微信支付应该给申请条件再加上一条:只有姓马的可以申请使用,后来,微信支付变的很快,并且体验也有了不小的提升,加上微信本身的巨量用户资源,所以看起来,微信支付是蛮有前途的,于是,我做了个 WooCommerce 微信支付插件,叫 WeixinPay for WooCommerce (WeixinPay 不中不洋的,不过也算是体现了其强大吧

微信支付开发教程

本文介绍微信支付v2和v3版的微信支付开发教程,来源于微信公众平台官方网站. 原文:http://www.cnblogs.com/txw1958/p/wxpay-development-document.html 前言 微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版.V3版的微信支付没有paySignKey参数. 一.微信支付v2 1. 使用网页授权接口 使用网页授权接口获取用户的基本信息. [微信公众号]OAuth2.0授权.pdf点击下载 2. 使