|
@@ -8,12 +8,21 @@ use refill;
|
|
|
class RefillCallBack implements refill\IRefillCallBack
|
|
|
{
|
|
|
|
|
|
- //todo 签名字段不匹配
|
|
|
public function verify($params): bool
|
|
|
{
|
|
|
+
|
|
|
$input = $params;
|
|
|
unset($input['Sign']);
|
|
|
- $sign = config::sign($input);
|
|
|
+
|
|
|
+ $cbsign = [
|
|
|
+ 'AppKey' => $params[AppKey],
|
|
|
+ 'TimesTamp' => $params[TimesTamp],
|
|
|
+ 'OrderID' => $params[OrderID],
|
|
|
+ 'MOrderID' => $params[MOrderID],
|
|
|
+ 'State' => $params[State]
|
|
|
+ ];
|
|
|
+
|
|
|
+ $sign = config::sign($cbsign);
|
|
|
if ($params['Sign'] == $sign) {
|
|
|
return true;
|
|
|
} else {
|
|
@@ -28,24 +37,26 @@ class RefillCallBack implements refill\IRefillCallBack
|
|
|
$order_sn = $params['MOrderID'];
|
|
|
$order_info = Model('vr_order')->getOrderInfo(['order_sn' => $order_sn]);
|
|
|
|
|
|
-// todo 这里失败
|
|
|
-// if (empty($order_info)) {
|
|
|
-// return [false, false, false, false, ''];
|
|
|
-// }
|
|
|
+ // todo 这里失败
|
|
|
+ // if (empty($order_info)) {
|
|
|
+ // return [false, false, false, false, ''];
|
|
|
+ // }
|
|
|
|
|
|
if($params['ExtendParam'] != 'null')
|
|
|
{
|
|
|
$ExtendParam = json_decode($params['ExtendParam'],true);
|
|
|
+ if($ExtendParam == 'null')
|
|
|
+ $ExtendParam = $params['ExtendParam'];
|
|
|
}else
|
|
|
$ExtendParam = 'null';
|
|
|
|
|
|
$official_sn = strtolower($ExtendParam[OfficialOrderID]) == 'null' ? '' : strtolower($ExtendParam[OfficialOrderID]);
|
|
|
$order_id = $order_info['order_id'];
|
|
|
|
|
|
- $status = intval($params['state']);
|
|
|
+ $status = intval($params['State']);
|
|
|
//充值状态:1=订单正在处理中,2=订单成功,3=订单失败,4=订单状态异常或未知
|
|
|
if ($status === 2) {
|
|
|
- $data['ch_trade_no'] = $params['MOrderID'];
|
|
|
+ $data['ch_trade_no'] = $params['OrderID'];
|
|
|
$data['official_sn'] = $official_sn;
|
|
|
Model('refill_order')->edit($order_id, $data);
|
|
|
return [$order_id, true, false, true, $official_sn];
|