zoukankan      html  css  js  c++  java
  • 支付宝退款操作

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

    第二步:需要的一些文件:支付宝的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 "失败"; }

      }

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

    退款就是如此简单!

  • 相关阅读:
    UVA 1400."Ray, Pass me the dishes!" -分治+线段树区间合并(常规操作+维护端点)并输出最优的区间的左右端点-(洛谷 小白逛公园 升级版)
    SPOJ GSS3-Can you answer these queries III-分治+线段树区间合并
    洛谷 P4513 小白逛公园-区间最大子段和-分治+线段树区间合并(单点更新、区间查询)
    HDU 3074.Multiply game-区间乘法-线段树(单点更新、区间查询),上推标记取模
    HDU 3183.A Magic Lamp-区间找最小值-RMQ(ST)
    HDU 1231.最大连续子序列-dp+位置标记
    牛客网 牛客练习赛43 F.Tachibana Kanade Loves Game-容斥(二进制枚举)+读入挂
    CodeForce-811B Vladik and Complicated Book(水题)
    POJ1426——Find The Multiple (简单搜索+取余)
    POJ——3278 Catch That Cow(BFS队列)
  • 原文地址:https://www.cnblogs.com/leiqi/p/8569206.html
Copyright © 2011-2022 走看看