• 支付宝退款操作


    第一步:申请你的支付宝的一些东西;

    第二步:需要的一些文件:支付宝的dome,因为我的是php版本,下载的是php 的dome!

    第三步:我用的是thinkphp5框架,把支付宝的dome放在 extend 文件夹里面,支付宝dome的名字自己随意取!

    第四步:开始进行代码的编写,首先我们引入到支付宝的一些文件进来

      require_once EXTEND_PATH . '../extend/alipay/aop/AopClient.php';
      require_once EXTEND_PATH . '../extend/alipay/aop/request/AlipayTradeRefundRequest.php';
      require_once EXTEND_PATH . '../extend/alipay/aop/SignData.php';

       实例化 $aop = new AopClient ();

        支付宝的这个文件;

      然后各种的参数往里面扔就好了,代码如下:

      $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
      $aop->appId = 'appid';
      $aop->rsaPrivateKey = 私钥;
      $aop->alipayrsaPublicKey=公钥;
      $aop->apiVersion = '1.0';
      $aop->signType = 'RSA2';
      $aop->postCharset='UTF-8';
      $aop->format='json';
      $request = new AlipayTradeRefundRequest ();

      下面拼接退款的一些参数(记住一定要转成json的格式的,这里我没有拼接商品的详细参数):

    $array=array(
    'out_trade_no'=>$shop_order,//订单支付时传入的商户订单号,不能和 trade_no同时为空。
    'trade_no'=>$alipay_order,//支付宝交易号,和商户订单号不能同时为空
    'refund_amount'=>$price,//需要退款的金额,该金额不能大于订单金额,单位为元,支持两位小数
    'refund_reason'=>'拼单失败退款',//退款的原因说明
    'out_request_no'=>$order_num,//标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传。
    'operator_id'=>'youdi001',//商户的操作员编号


    );
    $list=json_encode($array);



    好了现在给大家看一下全部的代码

    public function alipayTrade($shop_order,$alipay_order,$price,$order_num,$id){
    //echo 111;die;
    require_once EXTEND_PATH . '../extend/alipay/aop/AopClient.php';
    require_once EXTEND_PATH . '../extend/alipay/aop/request/AlipayTradeRefundRequest.php';
    require_once EXTEND_PATH . '../extend/alipay/aop/SignData.php';
    $aop = new AopClient ();
    $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
    $aop->appId = 'appid';
    $aop->rsaPrivateKey = '私';
    $aop->alipayrsaPublicKey='公';
    $aop->apiVersion = '1.0';
    $aop->signType = 'RSA2';
    $aop->postCharset='UTF-8';
    $aop->format='json';
    $request = new AlipayTradeRefundRequest ();
    $array=array(
    'out_trade_no'=>$shop_order,//订单支付时传入的商户订单号,不能和 trade_no同时为空。
    'trade_no'=>$alipay_order,//支付宝交易号,和商户订单号不能同时为空
    'refund_amount'=>$price,//需要退款的金额,该金额不能大于订单金额,单位为元,支持两位小数
    'refund_reason'=>'拼单失败退款',//退款的原因说明
    'out_request_no'=>$order_num,//标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传。
    'operator_id'=>'youdi001',//商户的操作员编号


    );
    $list=json_encode($array);
    $request->setBizContent($list);

    $result = $aop->execute ($request);

    $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
    $resultCode = $result->$responseNode->code; if(!empty($resultCode)&&$resultCode == 10000){
      echo '成功';
       } else {
    echo "失败"; }

      }

    这里我是封装成了一个方法进行调用的,逻辑层操作都在另外一个控制器里面;

    退款就是如此简单!

  • 相关阅读:
    redis 缓存验证码 步骤
    方法返回值 前面的<T>是什么?
    spring boot的运行原理
    在本地tomcat中调试Spring boot项目遇到的一些问题
    UEditor中上传图片的步骤
    总结彻底解决Spring MVC+Mybatis中文乱码问题
    ueditor1.4.3二次开发添加自定义Dialog
    UEditor之图片上传如何和真实项目结合
    UEditor之实现配置简单的图片上传示例 (转)
    Java比较运算符
  • 原文地址:https://www.cnblogs.com/leiqi/p/8569206.html
Copyright © 2020-2023  润新知