支付寶退款操做

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

第二步:須要的一些文件:支付寶的dome,由於個人是php版本,下載的是php 的dome!thinkphp

第三步:我用的是thinkphp5框架,把支付寶的dome放在 extend 文件夾裏面,支付寶dome的名字本身隨意取!
json

第四步:開始進行代碼的編寫,首先咱們引入到支付寶的一些文件進來api

  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';
app

   實例化 $aop = new \AopClient ();框架

    支付寶的這個文件;dom

  而後各類的參數往裏面扔就行了,代碼以下:thinkphp5

  $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 ();
post

  下面拼接退款的一些參數(記住必定要轉成json的格式的,這裏我沒有拼接商品的詳細參數):ui

 

$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 "失敗"; }

  }

 

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

 

退款就是如此簡單!

相關文章
相關標籤/搜索