|
|
@@ -372,6 +372,77 @@ class AliEcoService extends BaseService |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* alipay.planet.ecocampus.api.trade.refund(交易退款) |
|
|
|
* @param $out_order_no string 外部订单号 |
|
|
|
* @param $merchant_code string 商户编号 |
|
|
|
* @param $refund_out_order_no string 外部退款单号 |
|
|
|
* @param $refund_amount string 退款金额 |
|
|
|
* @param $refund_reason string 退款原因 |
|
|
|
* @return array |
|
|
|
*/ |
|
|
|
public function alipayPlanetEcocampusApiTradeRefund($out_order_no, $merchant_code, $refund_out_order_no, $refund_amount, $refund_reason): array |
|
|
|
{ |
|
|
|
|
|
|
|
// cleint初始 |
|
|
|
$client = new \EcoApiClient(); |
|
|
|
|
|
|
|
// 根据环境,选择行星OPENAPI网关地址 |
|
|
|
$client->gatewayUrl = $this->serverUrl; |
|
|
|
$client->rsaPrivateKey = $this->privateKey; |
|
|
|
$client->alipayrsaPublicKey = $this->alipayPublicKey; |
|
|
|
$client->signType = $this->signType; |
|
|
|
$client->format = $this->format; |
|
|
|
|
|
|
|
// 业务参数 |
|
|
|
$bizContent["merchant_code"] = $merchant_code; |
|
|
|
$bizContent["out_order_no"] = $out_order_no; |
|
|
|
$bizContent["refund_out_order_no"] = $refund_out_order_no; |
|
|
|
$bizContent["refund_amount"] = $refund_amount; |
|
|
|
$bizContent["refund_reason"] = $refund_reason; |
|
|
|
|
|
|
|
// 指定需要调用的service接口 |
|
|
|
$params["service"] = "alipay.planet.ecocampus.api.trade.refund"; |
|
|
|
$params["request_id"] = "" . uuid(); |
|
|
|
$params["biz_content"] = json_encode($bizContent); |
|
|
|
$params["version"] = "1.0"; |
|
|
|
|
|
|
|
// 其他参数 |
|
|
|
$params["charset"] = $this->charset; |
|
|
|
$params["isv_app_id"] = $this->appId; |
|
|
|
$params["utc_timestamp"] = "" . msectime(); |
|
|
|
|
|
|
|
//获取签名 |
|
|
|
$sign = $client->generateSign($params, $this->signType); |
|
|
|
|
|
|
|
// 调用ECOAPI |
|
|
|
$result = $client->call($params); |
|
|
|
|
|
|
|
$jsonStr = json_encode($result); |
|
|
|
|
|
|
|
|
|
|
|
// 响应的签名验证 转成Array 而非 Object |
|
|
|
$resMapData = json_decode($jsonStr, true); |
|
|
|
$this->logger($resMapData, 'alipayPlanetEcocampusApiTradeRefund', true); |
|
|
|
|
|
|
|
// 验签 |
|
|
|
$verifyRes = checkResponse($resMapData, $client->alipayrsaPublicKey); |
|
|
|
|
|
|
|
if ($verifyRes) { |
|
|
|
// echo "响应验签成功"; |
|
|
|
$responseData = $resMapData["response"]; |
|
|
|
if ($responseData['code'] == 10000) { |
|
|
|
return $this->returnRes(true, $responseData["msg"], $responseData); |
|
|
|
} else { |
|
|
|
return $this->returnRes(false, ($responseData['sub_msg'] ?? $responseData['msg']), $resMapData); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// echo "响应验签失败"; |
|
|
|
return $this->returnRes(false, "响应验签失败", []); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* alipay.planet.ecocampus.api.roster.consumeLimit(消费限制信息批量同步) |
|
|
|
* @param $consume_limit_sync_info string 消费限制信息同步请求 |
|
|
|