|
|
@ -39,10 +39,42 @@ class PaymentController extends BaseController |
|
|
'openid' => $data['openid'], |
|
|
'openid' => $data['openid'], |
|
|
]); |
|
|
]); |
|
|
|
|
|
|
|
|
$result['sign_type'] = 'MD5'; |
|
|
|
|
|
$result['timestamp'] = time(); |
|
|
|
|
|
|
|
|
$parameters = [ |
|
|
|
|
|
'appId' => $result['appid'], |
|
|
|
|
|
'timeStamp' => '' . time() . '', |
|
|
|
|
|
'nonceStr' => uniqid(), |
|
|
|
|
|
'package' => 'prepay_id=' . $result['prepay_id'], |
|
|
|
|
|
'signType' => 'MD5' |
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
//签名步骤一:按字典序排序参数
|
|
|
|
|
|
ksort($parameters); |
|
|
|
|
|
$string = $this->formatBizQueryParaMap($parameters, false); |
|
|
|
|
|
//签名步骤二:在string后加入KEY
|
|
|
|
|
|
$string = $string . "&key=" . $config['key']; |
|
|
|
|
|
//签名步骤三:MD5加密
|
|
|
|
|
|
$string = md5($string); |
|
|
|
|
|
//签名步骤四:所有字符转为大写
|
|
|
|
|
|
$parameters['paySign'] = strtoupper($string); |
|
|
|
|
|
|
|
|
|
|
|
return $this->success($parameters); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
return $this->success($result); |
|
|
|
|
|
|
|
|
///作用:格式化参数,签名过程需要使用
|
|
|
|
|
|
private function formatBizQueryParaMap($paraMap, $urlencode) { |
|
|
|
|
|
$buff = ""; |
|
|
|
|
|
ksort($paraMap); |
|
|
|
|
|
foreach ($paraMap as $k => $v) { |
|
|
|
|
|
if ($urlencode) { |
|
|
|
|
|
$v = urlencode($v); |
|
|
|
|
|
} |
|
|
|
|
|
$buff .= $k . "=" . $v . "&"; |
|
|
|
|
|
} |
|
|
|
|
|
$reqPar = null; |
|
|
|
|
|
if (strlen($buff) > 0) { |
|
|
|
|
|
$reqPar = substr($buff, 0, strlen($buff) - 1); |
|
|
|
|
|
} |
|
|
|
|
|
return $reqPar; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public function wxminiPayOffline(WxminiPayRequest $request){ |
|
|
public function wxminiPayOffline(WxminiPayRequest $request){ |
|
|
|