Commit 78531dd1 by 郑建康(PHP)

修复慧收钱 宝付模块细节问题

1 parent d1f81eee
...@@ -104,7 +104,6 @@ abstract class HsqTransBaseStrategy implements BaseStrategy ...@@ -104,7 +104,6 @@ abstract class HsqTransBaseStrategy implements BaseStrategy
public function handle(array $data) public function handle(array $data)
{ {
$buildClass = $this->getBuildDataClass(); $buildClass = $this->getBuildDataClass();
$this->reqData = new $buildClass($this->config, $data); $this->reqData = new $buildClass($this->config, $data);
$this->reqData->setSign(); $this->reqData->setSign();
$body = $this->reqData->getData(); $body = $this->reqData->getData();
......
...@@ -133,21 +133,21 @@ class HsqNotify extends NotifyStrategy ...@@ -133,21 +133,21 @@ class HsqNotify extends NotifyStrategy
// Array // Array
// ( // (
// [buyerName] => oAFzv5a67bJ0aGk7cB-RfK0Yap8s //openid // [buyerName] => oAFzv5a67bJ0aGk7cB-RfK0Yap8s //openid
// [channelOrderNo] => 23050815371110591231100592117922 //请求渠道商户订单号 // [channelOrderNo] => 23051714261110391231100016376946 //请求渠道商户订单号
// [finishedDate] => 20230508153801 // [finishedDate] => 20230517142648
// [fundBankCode] => OTHERS // [fundBankCode] => OTHERS
// [fundChannel] => OTHERS // [fundChannel] => OTHERS
// [goodsInfo] => 支付测试 // [goodsInfo] => 【猎电新能源】微信充值
// [memo] => {"openid":"oAFzv5a67bJ0aGk7cB-RfK0Yap8s","appid":"wxfbe753bb28212636","latitude":"22.33","spbillCreateIp":"150.158.53.11","paylimit":"no_credit","longitude":"171.21"} // [memo] => {"openid":"oAFzv5a67bJ0aGk7cB-RfK0Yap8s","appid":"wxfbe753bb28212636","latitude":"22.33","spbillCreateIp":"150.158.53.11","paylimit":"no_credit","longitude":"171.21"}
// [orderAmt] => 1 // [orderAmt] => 3000
// [orderStatus] => SUCCESS // [orderStatus] => SUCCESS
// [payOrderNo] => 4200001871202305087489820896 //渠道交易单号(支付宝/微信/银联返回的交易号) // [payOrderNo] => 4200001872202305170697281261 //渠道交易单号(支付宝/微信/银联返回的交易号)
// [payType] => WECHAT_APPLET // [payType] => WECHAT_APPLET
// [requestDate] => 20230508153751 // [requestDate] => 20230517142644
// [respCode] => 000000 // [respCode] => 000000
// [respMsg] => 交易成功 // [respMsg] => 交易成功
// [tradeNo] => 25000020230420101055003876003836 //交易订单号(慧收钱系统交易订单号) // [tradeNo] => 25000020230420100923003888927786 //交易订单号(慧收钱系统交易订单号)
// [transNo] => WechatPay20230508153751 //商户订单号(原支付交易对应的商户订单号) // [transNo] => 20230517142644095535524955535120 //商户订单号(原支付交易对应的商户订单号)
// ) // )
$retData = [ $retData = [
'openid' => $data['buyerName'], 'openid' => $data['buyerName'],
......
...@@ -5,6 +5,7 @@ use Payment\Common\PayException; ...@@ -5,6 +5,7 @@ use Payment\Common\PayException;
use Payment\Common\HsqTransConfig; use Payment\Common\HsqTransConfig;
use Payment\Config; use Payment\Config;
use Payment\Utils\BaoFooRsaUtil; use Payment\Utils\BaoFooRsaUtil;
use Payment\Utils\DataParser;
/** /**
...@@ -24,7 +25,6 @@ class HsqTransferNotify extends NotifyStrategy ...@@ -24,7 +25,6 @@ class HsqTransferNotify extends NotifyStrategy
public function __construct(array $config) public function __construct(array $config)
{ {
parent::__construct($config); parent::__construct($config);
try { try {
$this->config = new HsqTransConfig($config); $this->config = new HsqTransConfig($config);
} catch (PayException $e) { } catch (PayException $e) {
...@@ -44,7 +44,14 @@ class HsqTransferNotify extends NotifyStrategy ...@@ -44,7 +44,14 @@ class HsqTransferNotify extends NotifyStrategy
if(empty($data)){//如果参数为空,则不进行处理 if(empty($data)){//如果参数为空,则不进行处理
return false; return false;
} }
return $data; $tmp = explode("&",urldecode($data));
$result_data = array();
foreach($tmp as $val)
{
$tmp2 = explode("=",$val);
$result_data[$tmp2[0]] = $tmp2[1];
}
return $result_data;
} }
/** /**
...@@ -69,18 +76,16 @@ class HsqTransferNotify extends NotifyStrategy ...@@ -69,18 +76,16 @@ class HsqTransferNotify extends NotifyStrategy
protected function verifySign(array $retData) protected function verifySign(array $retData)
{ {
if (empty($this->config->publicKey)) return false; if (empty($this->config->publicKey)) return false;
$publicKey = $this->config->publicKey; $publicKey = $this->config->publicKey;
$retData = $retData['sign']; $retData = $retData['data_content'];
//解密 //解密
$decrypt = BaoFooRsaUtil::decryptByCERFile($retData, $publicKey); $decrypt = BaoFooRsaUtil::decryptByCERFile($retData, $publicKey);
$result = json_decode($decrypt,true); $data_content = DataParser::toArray($decrypt);
print_r($result);die; $result = $data_content['trans_reqDatas']['trans_reqData'] ?? '';
if($result) if($result)
{ {
//验签成功 //验签成功
return true; return $result;
} }
else{ else{
return false; return false;
...@@ -99,27 +104,10 @@ class HsqTransferNotify extends NotifyStrategy ...@@ -99,27 +104,10 @@ class HsqTransferNotify extends NotifyStrategy
*/ */
protected function getRetData(array $data) protected function getRetData(array $data)
{ {
if ($this->config->returnRaw) { $retData = $data;
$data['channel'] = Config::HSQ_CHARGE; $retData['amount'] = bcmul($data['trans_money'] ?? 0, 100); //转账金额
return $data; $retData['channel'] = Config::HSQ_TRANSFER;
} return $retData;
return $data;
// $retData = [
// 'cash_fee' => $data['cash_fee'],
// 'fee_type' => $data['fee_type'],
// 'appid' => $data['sub_appid'],
// 'sub_merchant_id' => $data['sub_merchant_id'],
// 'buyer_id' => $data['sub_openid'],
// 'order_no' => $data['out_trade_sn'],//平台
// 'meepay_trade_no' => $data['meepay_trade_no'],//米付
// 'pay_time' => date('Y-m-d H:i:s', $data['pay_time']),// 支付完成时间
// 'amount' => $data['total_amount'],
// 'trade_type' => $data['trade_type'],
// 'transaction_id' => $data['transaction_id'],//微信
// 'trade_state' => strtolower($data['result_code']),
// 'channel' => Config::MI_CHARGE,
// ];
// return $retData;
} }
/** /**
......
...@@ -51,7 +51,7 @@ abstract class NotifyStrategy ...@@ -51,7 +51,7 @@ abstract class NotifyStrategy
} }
// 回调商户的业务逻辑 // 回调商户的业务逻辑
$flag = $this->callback($notify, $notifyData); $flag = $this->callback($notify, $checkRet);
if ($flag) { if ($flag) {
$msg = 'OK'; $msg = 'OK';
......
...@@ -43,7 +43,6 @@ class HsqTransferQuery extends HsqTransBaseStrategy ...@@ -43,7 +43,6 @@ class HsqTransferQuery extends HsqTransBaseStrategy
protected function retData(array $ret) protected function retData(array $ret)
{ {
$head = $ret['trans_content']['trans_head']; $head = $ret['trans_content']['trans_head'];
$data = $ret['trans_content']['trans_reqDatas'][0]['trans_reqData'];
if($head['return_code'] != '0000') if($head['return_code'] != '0000')
{ {
$retData = [ $retData = [
...@@ -54,6 +53,7 @@ class HsqTransferQuery extends HsqTransBaseStrategy ...@@ -54,6 +53,7 @@ class HsqTransferQuery extends HsqTransBaseStrategy
} }
else else
{ {
$data = $ret['trans_content']['trans_reqDatas'][0]['trans_reqData'];
$retData = [ $retData = [
'is_success' => 'T', 'is_success' => 'T',
'response' => [ 'response' => [
......
...@@ -43,13 +43,15 @@ class HsqTransfer extends HsqTransBaseStrategy ...@@ -43,13 +43,15 @@ class HsqTransfer extends HsqTransBaseStrategy
protected function retData(array $ret) protected function retData(array $ret)
{ {
$head = $ret['trans_content']['trans_head']; $head = $ret['trans_content']['trans_head'];
$data = $ret['trans_content']['trans_reqDatas'][0]['trans_reqData']; $data = $ret['trans_content']['trans_reqDatas'][0]['trans_reqData'] ?? '';
if($head['return_code'] != '0000') if($head['return_code'] != '0000')
{ {
$retData = [ $retData = [
'is_success' => 'F', 'is_success' => 'F',
'error' => $head['return_msg'], 'response' => [
'channel' => Config::HSQ_TRANSFER, 'error' => $head['return_msg'],
'channel' => Config::HSQ_TRANSFER,
],
]; ];
} }
else else
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!