|
|
@@ -806,6 +806,7 @@ class WechatService extends BaseService
|
|
|
$timeStamp = isset($params['timeStamp'])? $params['timeStamp'] : '';
|
|
|
$nonceStr = isset($params['nonceStr'])? $params['nonceStr'] : '';
|
|
|
unset($params['signType']);
|
|
|
+ var_dump($params);
|
|
|
$signStr = implode("\n", array_values($params))."\n";
|
|
|
//echo $signStr;
|
|
|
$mch_private_key = openssl_get_privatekey(file_get_contents(self::$certPaths['key_path']));
|
|
|
@@ -831,16 +832,43 @@ class WechatService extends BaseService
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 验证JSAPI回调V3
|
|
|
+ * @param $notifyData
|
|
|
+ * @return array|bool
|
|
|
+ */
|
|
|
+ public static function checkJsapiNotifyV3($notifyData)
|
|
|
+ {
|
|
|
+ if (empty($notifyData)) {
|
|
|
+ return ['code' => 'error', 'message' => 'parse xml error'];
|
|
|
+ }
|
|
|
+ $tradeState = isset($notifyData['trade_state']) ? trim($notifyData['trade_state']) : '';
|
|
|
+ $nofitySign = isset($notifyData['sign']) ? trim($notifyData['sign']) : '';
|
|
|
+ if ($tradeState != 'SUCCESS') {
|
|
|
+ $error = isset($notifyData['return_msg']) ? $notifyData['return_msg'] : '';
|
|
|
+ return ['code' => 'error', 'message' => $error];
|
|
|
+ }
|
|
|
+
|
|
|
+ // 验证签名
|
|
|
+ unset($notifyData['sign']);
|
|
|
+ $sign = WechatService::getPaySignV3($notifyData);
|
|
|
+ if ($nofitySign == $sign) {
|
|
|
+ echo '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>';
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 验证JSAPI回调
|
|
|
* @param $notifyData
|
|
|
* @return array|bool
|
|
|
*/
|
|
|
- public static function checkJsapiNotify($notifyData, $version='v2')
|
|
|
+ public static function checkJsapiNotify($notifyData)
|
|
|
{
|
|
|
if (empty($notifyData)) {
|
|
|
return ['code' => 'error', 'message' => 'parse xml error'];
|
|
|
}
|
|
|
- $orderNo = isset($notifyData['out_trade_no']) ? trim($notifyData['out_trade_no']) : '';
|
|
|
$returnCode = isset($notifyData['return_code']) ? trim($notifyData['return_code']) : '';
|
|
|
$resultCode = isset($notifyData['result_code']) ? trim($notifyData['result_code']) : '';
|
|
|
$nofitySign = isset($notifyData['sign']) ? trim($notifyData['sign']) : '';
|
|
|
@@ -855,7 +883,7 @@ class WechatService extends BaseService
|
|
|
|
|
|
// 验证签名
|
|
|
unset($notifyData['sign']);
|
|
|
- $sign = $version == 'v3'? WechatService::getPaySignV3($notifyData) : WechatService::getPaySign($notifyData);
|
|
|
+ $sign = WechatService::getPaySign($notifyData);
|
|
|
if ($nofitySign == $sign) {
|
|
|
echo '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>';
|
|
|
return true;
|