够意思博客够意思博客够意思博客

TP5.0支付宝APP支付退款功能

下载支付宝APP支付官方PHPSDK,并放至Extend中。(下载地址:https://docs.open.alipay.com/54/106370/)

支付宝APP支付退款文档地址:支付宝APP支付退款API文档

复制文档中的PHP示例,修改对应的参数即可。示例中只返回是否请求成功,并没有检测是否退款成功,检测是否退款成功要判断fund_change字段是否为Y,为Y时代表退款成功

/**
* 统一收单交易退款接口  退款用支付宝公钥
* @param $order   订单信息
* @param  $tk_money 退款金额  退款金额不能大于订单金额
* @return bool
*/
public function TkAliPay($order,$tk_money=0.01,$tk_desc='订单取消')
{
   import('.Alipay.AopClient', '', '.php');
   import('.Alipay.request.AlipayTradeRefundRequest', '', '.php');
   $aop = new \AopClient ();
   $aop->gatewayUrl            = Config::get('alipay')['gatewayUrl'];
   $aop->appId                 = Config::get('alipay')['appId'];
   $aop->rsaPrivateKey         = Config::get('alipay')['rsaPrivateKey'];
   $aop->format                = Config::get('alipay')['format'];
   $aop->charset               = Config::get('alipay')['charset'];
   $aop->signType              = Config::get('alipay')['signType'];
   $aop->alipayrsaPublicKey    = Config::get('alipay')['alipayrsaPublicKey'];
   $aop->apiVersion = '1.0';
   $aop->postCharset='UTF-8';
   $request = new \AlipayTradeRefundRequest();
   $arr['trade_no']                = $order['out_trade_no']; //支付宝交易订单号
   $arr['out_trade_no']             = $order['order_no'];    //商户订单号    生成订单时用户自定义生成的订单
   $arr['out_request_no']        = $order['order_no'];       //退款单号
   $arr['refund_amount']     = floatval($tk_money);//退款金额
   $arr['refund_reason ']     = $tk_desc;  //退款备注
   $request->setBizContent(json_encode($arr));
   $result = $aop->execute($request);
   $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
   $resultCode = $result->$responseNode->code;
   //$resultCode==10000仅代表接口请求成功,要想验证是否退款成功,需要判断fund_change字段 Y退款成功 N退款失败
   if(!empty($resultCode)&&$resultCode == 10000&&$result->$responseNode->fund_change=="Y"){
       return true; //退款成功
   } else {
       return false;//退款失败
   }
}



本文为够意思原创文章,转载无需和我联系,但请注明来自够意思博客blog.go1s.cn:够意思博客 » TP5.0支付宝APP支付退款功能

加载中~