阶段性提交代码

This commit is contained in:
2020-10-10 14:57:22 +08:00
parent c909b9b1ed
commit 7cfd45bf99
14 changed files with 540 additions and 211 deletions

View File

@@ -1,54 +1,98 @@
<?php
namespace App\Api\Controllers;
use Illuminate\Http\Request;
use XuanChen\UnionPay\UnionPay;
use Response;
class UnionPayController extends Controller
{
public function index()
{
$user_ext_info = [
'mobile_no' => '15663876870',
'user_code' => '1',
'user_code_type' => '8521475DDDeeee',
'dev_id' => '1',
];
dd(json_encode($user_ext_info));
$str = 'msg_type=00&msg_txn_code=002100&msg_crrltn_id=12345678901234567890123456789000&msg_flg=0&msg_sender=01&msg_time=20130318162412&msg_sys_sn=12345678900987654321&msg_ver=0.1&mchnt_no=8981231234567890&term_no=12345678&shop_no=086123456123456789&req_serial_no=12345678900987654321&orig_req_serial_no=12345678900987654321&enc_card_no=123123123123123123123sdfadqerqr&acq_term_sn=123456&refer_no=123456789012&sett_date=20130318&txn_date=20130318&txn_time=162850&orig_amt=10000&discount_amt=2000&pay_amt=8000&pay_mode=1';
parse_str($str, $arr_str);
$action = new UnionPay($arr_str);
$sign = $action->getSign();
$action->sign = $sign;
$res = $action->checkSign(true);
dump($sign);
dump($res);
}
/**
* 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->start();
$action->updateOutData();
return $action->respond();
}
}
<?php
namespace App\Api\Controllers;
use App\Exceptions\ApiException;
use Illuminate\Http\Request;
use XuanChen\UnionPay\UnionPay;
class UnionPayController extends Controller
{
public function index(Request $request)
{
$action = new UnionPay($request->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();
}
}