支付寶退款操作


第一步:申請你的支付寶的一些東西;

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

  }

 

這里我是封裝成了一個方法進行調用的,邏輯層操作都在另外一個控制器里面;

 

退款就是如此簡單!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM