$aop = new \AopClient ();
$aop->gatewayUrl = config('alipay.gatewayUrl');
$aop->appId = config('alipay.appId');
$aop->rsaPrivateKey = config('alipay.rsaPrivateKey');
$aop->alipayrsaPublicKey = config('alipay.alipayrsaPublicKey');
$aop->apiVersion = '1.0';
$aop->signType = 'RSA2';
$aop->postCharset='utf-8';
$aop->format='json';
$request = new \AlipayTradeRefundRequest();
$request->setBizContent("{" .
"\"trade_no\":\"20171128210010040\"," .
"\"out_trade_no\":\"17112832655892\"," .
"\"refund_amount\":1.00," .
"\"refund_reason\":\"正常退款\"," .
" }");
$result = $aop->execute ( $request);
$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
$resultCode = $result->$responseNode->code;
dump($result);
if(!empty($resultCode)&&$resultCode == 10000){
// echo "成功";
return true;
} else {
// echo "失败";
throw new Exception($result->$responseNode->sub_msg);
}
使用的是demo上的东西 可是返回结果一直是 说 参数错误。
我确定上面的配置的是没有错误。同样的配置,支付和转账 都是可以正常使用的,。就是退款这里不行。大家看一下是不是哪里错误了。还是少传什么参数了。
setBizContent 上的参数 为了 安全我截掉了一部份,trade_no out_trade_no 这两个参数 是我直接在对账中心复制过来的 保证没有错误。
我实在是找不到错误原因了。
返回结果
object(stdClass)#18 (2) {
["alipay_trade_refund_response"] => object(stdClass)#19 (4) {
["code"] => string(5) "40004"
["msg"] => string(15) "Business Failed"
["sub_code"] => string(21) "ACQ.INVALID_PARAMETER"
["sub_msg"] => string(12) "参数无效"
}
["sign"] => string(344) "ZtYZhpRXnoASdvbUwu"
}
最佳答案
