Skip to content

Commit

Permalink
支付优化, 增加退款接口
Browse files Browse the repository at this point in the history
  • Loading branch information
Tai7sy committed Oct 6, 2019
1 parent 900eabd commit d340749
Show file tree
Hide file tree
Showing 31 changed files with 445 additions and 90 deletions.
30 changes: 27 additions & 3 deletions Pay/AliAop/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
* Class Api
* @package Gateway\Pay\AliAop
*/

class Api implements ApiInterface
{
//异步通知页面需要隐藏防止CC之类的验证导致返回失败
Expand Down Expand Up @@ -102,7 +101,6 @@ function goPay($config, $out_trade_no, $subject, $body, $amount_cent)
* @param $config
* @param callable $successCallback 成功回调 (系统单号,交易金额/分,支付渠道单号)
* @return bool|string true 验证通过 string 失败原因
* @throws \Alipay\Exception\AlipayErrorResponseException
*/
function verify($config, $successCallback)
{
Expand Down Expand Up @@ -157,7 +155,7 @@ function verify($config, $successCallback)
// out_trade_no=20190303161401iqDUK&method=alipay.trade.page.pay.return&total_amount=0.01&
// sign=xxx&trade_no=2019030322001498661018828681&auth_app_id=2019012163100265&version=1.0&app_id=2019012163100265&
// sign_type=RSA2&seller_id=2088431220893143&timestamp=2019-03-03+16%3A14%3A48
if(!isset($_GET['out_trade_no']) || !isset($_GET['total_amount'])){
if (!isset($_GET['out_trade_no']) || !isset($_GET['total_amount'])) {
return false;
}
$passed = $this->aop($config)->verify($_GET);
Expand All @@ -172,4 +170,30 @@ function verify($config, $successCallback)
}
return false;
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
* @throws \Throwable
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
$request = \Alipay\AlipayRequestFactory::create('alipay.trade.refund', [
'notify_url' => $this->url_notify,
'biz_content' => [
'out_trade_no' => $order_no, // 订单支付时传入的商户订单号
'refund_amount' => sprintf('%.2f', $amount_cent / 100),
'refund_reason' => '订单#' . $order_no
]]);

$result = $this->aop($config)->execute($request)->getData();
if (!isset($result['code']) || $result['code'] !== '10000') { // string 类型
throw new \Exception($result['sub_msg'], $result['code']);
}
return true;
}
}
13 changes: 13 additions & 0 deletions Pay/Alipay/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -118,4 +118,17 @@ private function buildAliConfig($config)
'create_direct_pay_by_user', // 即时到账
];
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
24 changes: 20 additions & 4 deletions Pay/ApiInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,36 @@ interface ApiInterface
public function __construct($id);

/**
* 提交支付
* @param array $config 支付渠道配置
* @param string $out_trade_no 本系统的订单号
* @param string $order_no 本系统的订单号
* @param string $subject 商品名称
* @param string $body 商品介绍
* @param int $amount_cent 金额/分
*/
function goPay($config, $out_trade_no, $subject, $body, $amount_cent);
function goPay($config, $order_no, $subject, $body, $amount_cent);


/**
* @param $config
* 验证支付是否成功 <br>
* $config['isNotify'] = true 则为支付成功后后台通知消息 <br>
* $config['out_trade_no'] = 'xx' 则可能为二维码查询页面异步查询 <br>
* 其余由情况为 支付成功后前台回调
* @param array $config 支付渠道配置
* @param callable $successCallback 成功回调 (系统单号,交易金额/分,支付渠道单号)
* @return bool|string true 验证通过 string 失败原因
* @return true|string true 验证通过 string 失败原因
*/
function verify($config, $successCallback);

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
* @throws \Throwable
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent);

}
12 changes: 12 additions & 0 deletions Pay/BTC/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -110,4 +110,16 @@ function verify($config, $successCallback)
}
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
12 changes: 12 additions & 0 deletions Pay/CodePay/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -123,4 +123,16 @@ function verify($config, $successCallback)
}
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
13 changes: 13 additions & 0 deletions Pay/CoinPayments/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -148,4 +148,17 @@ function errorAndDie($error_msg)
}
die('IPN OK');
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
14 changes: 13 additions & 1 deletion Pay/Demo/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,17 @@ function verify($config, $successCallback)
return true;
}


/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
// 直接成功, 用于测试
return true;
}
}
13 changes: 13 additions & 0 deletions Pay/Fakala/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,17 @@ function verify($config, $successCallback)

return $result;
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
13 changes: 13 additions & 0 deletions Pay/Fubei/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -141,4 +141,17 @@ private static function sign($data)
{
return md5($data);
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
12 changes: 12 additions & 0 deletions Pay/HLPay/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -204,4 +204,16 @@ private function curl_post($url, $post_data = '')
return $body;
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
13 changes: 13 additions & 0 deletions Pay/JCBPay/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -156,4 +156,17 @@ function verify($config, $successCallback)

}
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
13 changes: 12 additions & 1 deletion Pay/JiPays/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -219,5 +219,16 @@ function verify($config, $successCallback)
}
}


/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
13 changes: 13 additions & 0 deletions Pay/JinfuPass/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -346,4 +346,17 @@ private function api_wap($config, $channel, $out_trade_no, $subject, $body, $amo
'
);
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
13 changes: 13 additions & 0 deletions Pay/Meeol/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -112,4 +112,17 @@ function verify($config, $successCallback)
}
return false;
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
13 changes: 13 additions & 0 deletions Pay/MoTonePay/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -125,4 +125,17 @@ function verify($config, $successCallback)
}
return false;
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
12 changes: 12 additions & 0 deletions Pay/MugglePay/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -166,4 +166,16 @@ function verify($config, $successCallback)
}
}

/**
* 退款操作
* @param array $config 支付渠道配置
* @param string $order_no 订单号
* @param string $pay_trade_no 支付渠道流水号
* @param int $amount_cent 金额/分
* @return true|string true 退款成功 string 失败原因
*/
function refund($config, $order_no, $pay_trade_no, $amount_cent)
{
return '此支付渠道不支持发起退款, 请手动操作';
}
}
Loading

0 comments on commit d340749

Please sign in to comment.