Commit 78531dd1 by 郑建康(PHP)

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

1 parent d1f81eee
......@@ -104,7 +104,6 @@ abstract class HsqTransBaseStrategy implements BaseStrategy
public function handle(array $data)
{
$buildClass = $this->getBuildDataClass();
$this->reqData = new $buildClass($this->config, $data);
$this->reqData->setSign();
$body = $this->reqData->getData();
......
......@@ -133,21 +133,21 @@ class HsqNotify extends NotifyStrategy
// Array
// (
// [buyerName] => oAFzv5a67bJ0aGk7cB-RfK0Yap8s //openid
// [channelOrderNo] => 23050815371110591231100592117922 //请求渠道商户订单号
// [finishedDate] => 20230508153801
// [channelOrderNo] => 23051714261110391231100016376946 //请求渠道商户订单号
// [finishedDate] => 20230517142648
// [fundBankCode] => 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"}
// [orderAmt] => 1
// [orderAmt] => 3000
// [orderStatus] => SUCCESS
// [payOrderNo] => 4200001871202305087489820896 //渠道交易单号(支付宝/微信/银联返回的交易号)
// [payOrderNo] => 4200001872202305170697281261 //渠道交易单号(支付宝/微信/银联返回的交易号)
// [payType] => WECHAT_APPLET
// [requestDate] => 20230508153751
// [requestDate] => 20230517142644
// [respCode] => 000000
// [respMsg] => 交易成功
// [tradeNo] => 25000020230420101055003876003836 //交易订单号(慧收钱系统交易订单号)
// [transNo] => WechatPay20230508153751 //商户订单号(原支付交易对应的商户订单号)
// [tradeNo] => 25000020230420100923003888927786 //交易订单号(慧收钱系统交易订单号)
// [transNo] => 20230517142644095535524955535120 //商户订单号(原支付交易对应的商户订单号)
// )
$retData = [
'openid' => $data['buyerName'],
......
......@@ -5,6 +5,7 @@ use Payment\Common\PayException;
use Payment\Common\HsqTransConfig;
use Payment\Config;
use Payment\Utils\BaoFooRsaUtil;
use Payment\Utils\DataParser;
/**
......@@ -24,7 +25,6 @@ class HsqTransferNotify extends NotifyStrategy
public function __construct(array $config)
{
parent::__construct($config);
try {
$this->config = new HsqTransConfig($config);
} catch (PayException $e) {
......@@ -44,7 +44,14 @@ class HsqTransferNotify extends NotifyStrategy
if(empty($data)){//如果参数为空,则不进行处理
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
protected function verifySign(array $retData)
{
if (empty($this->config->publicKey)) return false;
$publicKey = $this->config->publicKey;
$retData = $retData['sign'];
$retData = $retData['data_content'];
//解密
$decrypt = BaoFooRsaUtil::decryptByCERFile($retData, $publicKey);
$result = json_decode($decrypt,true);
print_r($result);die;
$data_content = DataParser::toArray($decrypt);
$result = $data_content['trans_reqDatas']['trans_reqData'] ?? '';
if($result)
{
//验签成功
return true;
return $result;
}
else{
return false;
......@@ -99,27 +104,10 @@ class HsqTransferNotify extends NotifyStrategy
*/
protected function getRetData(array $data)
{
if ($this->config->returnRaw) {
$data['channel'] = Config::HSQ_CHARGE;
return $data;
}
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;
$retData = $data;
$retData['amount'] = bcmul($data['trans_money'] ?? 0, 100); //转账金额
$retData['channel'] = Config::HSQ_TRANSFER;
return $retData;
}
/**
......
......@@ -51,7 +51,7 @@ abstract class NotifyStrategy
}
// 回调商户的业务逻辑
$flag = $this->callback($notify, $notifyData);
$flag = $this->callback($notify, $checkRet);
if ($flag) {
$msg = 'OK';
......
......@@ -43,7 +43,6 @@ class HsqTransferQuery extends HsqTransBaseStrategy
protected function retData(array $ret)
{
$head = $ret['trans_content']['trans_head'];
$data = $ret['trans_content']['trans_reqDatas'][0]['trans_reqData'];
if($head['return_code'] != '0000')
{
$retData = [
......@@ -54,6 +53,7 @@ class HsqTransferQuery extends HsqTransBaseStrategy
}
else
{
$data = $ret['trans_content']['trans_reqDatas'][0]['trans_reqData'];
$retData = [
'is_success' => 'T',
'response' => [
......
......@@ -43,13 +43,15 @@ class HsqTransfer extends HsqTransBaseStrategy
protected function retData(array $ret)
{
$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')
{
$retData = [
'is_success' => 'F',
'response' => [
'error' => $head['return_msg'],
'channel' => Config::HSQ_TRANSFER,
],
];
}
else
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!