all()); // $sign = $action->getSign(false); $sign = 'd8e5bf46d0d9f1da702170c2e141d85cf3ca785106886dbfedb3310ee9ce2ca3f18a2e6c179ec9908fc4f41d05df463634106918bdbefc63b8f199c7d2f3b0d45510b4dd6ccdf4549e11a8551a5098b14c01fdaa5840a4608f462fdafdc14b8f2a35471da315d8245a4ef6281b6e04bd22d5a266500a6caf6e5203202c37111d'; $action->sign = $sign; $res = $action->checkSign(false, false); dump('签名: ' . $sign); $res_str = ($res === true) ? '成功' : '失败'; dump('验签结果:' . $res_str); dd($action); } //签名 public function toSign($sign_data) { //签名字段 // $sign_data['msg_type'] = $array['msg_type']; // $sign_data['msg_txn_code'] = $array['msg_txn_code']; // $sign_data['msg_crrltn_id'] = $array['msg_crrltn_id']; // $sign_data['msg_flg'] = $array['msg_flg']; // $sign_data['msg_sender'] = $array['msg_sender']; // $sign_data['msg_time'] = $array['msg_time']; // $sign_data['msg_sys_sn'] = $array['msg_sys_sn']; // $sign_data['msg_ver'] = $array['msg_ver']; // if (isset($array['msg_rsp_code'])) { // $sign_data['msg_rsp_code'] = $array['msg_rsp_code']; // } // if (isset($array['msg_rsp_desc'])) { // $sign_data['msg_rsp_desc'] = $array['msg_rsp_desc']; // } //将字段名按字母表顺序排序 ksort($sign_data); //将post的数据utf-8编码 $str_data = utf8_encode(http_build_query($sign_data)); //获取私钥资源ID $private = config('unionpay.check.self.private'); if (!file_exists($private)) { throw new \Exception('缺少私钥文件'); } $private_key = file_get_contents($private); $pkeyid = openssl_get_privatekey($private_key); //签名赋值sign if (openssl_sign($str_data, $sign, $pkeyid)) { $sign_data = bin2hex($sign); } else { $sign_data = ''; } //释放ssl资源 openssl_free_key($pkeyid); return $sign_data; } /** * Notes: 银联接口 * @Author: 玄尘 * @Date : 2020/9/28 16:31 * @param Request $request * @return mixed */ public function query(Request $request) { $inputs = $request->all(); $sign = $inputs['sign']; unset($inputs['sign']); $action = new UnionPay($inputs, $sign); // $action->addLog(); $action->start(); // $action->updateLog(); return $action->respond(); } }