2 changed files with 122 additions and 116 deletions
@ -1,122 +1,126 @@ |
|||
<?php |
|||
session_start(); |
|||
$openid = $_SESSION['openid']; |
|||
$redirect_url = $_SESSION['prev_url']; |
|||
// var_dump($redirect_url); |
|||
|
|||
// 加载基础类 |
|||
require_once('../library/Base.php'); |
|||
$Base = new Base(); |
|||
|
|||
// 获取配置信息 |
|||
$config = $Base->getConfig(); |
|||
// var_dump('<pre>', $config); |
|||
function pay() |
|||
{ |
|||
session_start(); |
|||
$openid = $_SESSION['openid']; |
|||
$redirect_url = $_SESSION['prev_url']; |
|||
// unset($_SESSION['prev_url']); |
|||
// var_dump($redirect_url); |
|||
|
|||
// 接口URL(测试) |
|||
$api_url = $config['pay_url']; |
|||
// $api_url = $_POST['url']; |
|||
$message = array( |
|||
"url"=>$api_url, |
|||
); |
|||
// echo json_encode($message,true); |
|||
// 加个body字段传中文试试 |
|||
// 加载基础类 |
|||
require_once('../library/Base.php'); |
|||
$Base = new Base(); |
|||
|
|||
// 组装交易报文 |
|||
$reqsn_prefix = date('Ymd'); |
|||
// var_dump("uniq_id(reqsn)"); |
|||
// echo "\r\n"; |
|||
// var_dump(uniqid($reqsn_prefix)); |
|||
$trade_data = array( |
|||
'orgid' => $config['org_num'], |
|||
'cusid' => $config['cusid'], |
|||
'branchno' => $config['branchno'], |
|||
'termcode' => $config['termcode'], |
|||
'version' => $config['version'], |
|||
'trxamt' => '1', |
|||
'reqsn' => uniqid($reqsn_prefix), |
|||
'producp' => 'JX0002', |
|||
'transtype' => 'JSP511', |
|||
'paytype' => 'W02', |
|||
'randomstr' => md5( uniqid() ), |
|||
'body' => 'pages', |
|||
'acct' => $openid, |
|||
); |
|||
// 获取配置信息 |
|||
$config = $Base->getConfig(); |
|||
// var_dump('<pre>', $config); |
|||
|
|||
// 生成签名 |
|||
$sign = $Base->Crypt->makeSign($trade_data); |
|||
if($sign === false) |
|||
{ |
|||
// echo $Base->Crypt->err_msg; |
|||
$errorMessage = array( |
|||
"data"=>"makeSign error..." |
|||
// 接口URL(测试) |
|||
$api_url = $config['pay_url']; |
|||
// $api_url = $_POST['url']; |
|||
$message = array( |
|||
"url"=>$api_url, |
|||
); |
|||
return json_encode($errorMessage,true); |
|||
die(); |
|||
} |
|||
// echo "\r\n"; |
|||
// echo "[sign]: {$sign}"; |
|||
// die(); |
|||
// echo json_encode($message,true); |
|||
// 加个body字段传中文试试 |
|||
|
|||
// 加密交易报文 |
|||
$crypted_trade_data = $Base->Crypt->encryptTradeData($trade_data); |
|||
if($crypted_trade_data === false) |
|||
{ |
|||
// echo $Base->Crypt->err_msg; |
|||
$errorMessage = array( |
|||
"data"=>"encryptTradeData error..." |
|||
// 组装交易报文 |
|||
$reqsn_prefix = date('Ymd'); |
|||
// var_dump("uniq_id(reqsn)"); |
|||
// echo "\r\n"; |
|||
// var_dump(uniqid($reqsn_prefix)); |
|||
$trade_data = array( |
|||
'orgid' => $config['org_num'], |
|||
'cusid' => $config['cusid'], |
|||
'branchno' => $config['branchno'], |
|||
'termcode' => $config['termcode'], |
|||
'version' => $config['version'], |
|||
'trxamt' => '1', |
|||
'reqsn' => uniqid($reqsn_prefix), |
|||
'producp' => 'JX0002', |
|||
'transtype' => 'JSP511', |
|||
'paytype' => 'W02', |
|||
'randomstr' => md5( uniqid() ), |
|||
'body' => 'pages', |
|||
'acct' => $openid, |
|||
); |
|||
return json_encode($errorMessage,true); |
|||
die(); |
|||
} |
|||
// echo "\r\n"; |
|||
// echo "[crypted message]: {$crypted_trade_data}"; |
|||
// die(); |
|||
|
|||
// 发送报文 |
|||
// echo "\r\n"; |
|||
// var_dump($api_url); |
|||
$response = $Base->Request->send($api_url, $crypted_trade_data, $sign); |
|||
if($response === false) |
|||
{ |
|||
// echo $Base->Request->err_msg; |
|||
$errorMessage = array( |
|||
"data"=>"send error..." |
|||
); |
|||
return json_encode($errorMessage,true); |
|||
die(); |
|||
} |
|||
// echo "\r\n"; |
|||
// echo "[response message]: {$response}"; |
|||
// 生成签名 |
|||
$sign = $Base->Crypt->makeSign($trade_data); |
|||
if($sign === false) |
|||
{ |
|||
// echo $Base->Crypt->err_msg; |
|||
$errorMessage = array( |
|||
"data"=>"makeSign error..." |
|||
); |
|||
return json_encode($errorMessage,true); |
|||
die(); |
|||
} |
|||
// echo "\r\n"; |
|||
// echo "[sign]: {$sign}"; |
|||
// die(); |
|||
|
|||
// 解析响应报文 |
|||
$response = json_decode($response, true); |
|||
$response_data_crypted = $response['data']; |
|||
$response_sign = $response['sign']; |
|||
// echo "\r\n"; |
|||
// echo "[response sign]: {$response_sign}"; |
|||
// echo "\r\n"; |
|||
// echo "[response data (ciphertext)]: {$response_data_crypted}"; |
|||
// 加密交易报文 |
|||
$crypted_trade_data = $Base->Crypt->encryptTradeData($trade_data); |
|||
if($crypted_trade_data === false) |
|||
{ |
|||
// echo $Base->Crypt->err_msg; |
|||
$errorMessage = array( |
|||
"data"=>"encryptTradeData error..." |
|||
); |
|||
return json_encode($errorMessage,true); |
|||
die(); |
|||
} |
|||
// echo "\r\n"; |
|||
// echo "[crypted message]: {$crypted_trade_data}"; |
|||
// die(); |
|||
|
|||
// 解密响应密文 |
|||
$response_data = $Base->Crypt->decryptTradeData($response_data_crypted); |
|||
if($response_data === false) |
|||
{ |
|||
// echo $Base->Crypt->err_msg; |
|||
$errorMessage = array( |
|||
"data"=>"decryptTradeData error..." |
|||
); |
|||
return json_encode($errorMessage,true); |
|||
die(); |
|||
} |
|||
// echo "\r\n"; |
|||
// echo "[response data(clear text)]: {$response_data}"; |
|||
// die(); |
|||
echo $response_data; |
|||
$_SESSION['response_data_json'] = $response_data; |
|||
// 发送报文 |
|||
// echo "\r\n"; |
|||
// var_dump($api_url); |
|||
$response = $Base->Request->send($api_url, $crypted_trade_data, $sign); |
|||
if($response === false) |
|||
{ |
|||
// echo $Base->Request->err_msg; |
|||
$errorMessage = array( |
|||
"data"=>"send error..." |
|||
); |
|||
return json_encode($errorMessage,true); |
|||
die(); |
|||
} |
|||
// echo "\r\n"; |
|||
// echo "[response message]: {$response}"; |
|||
|
|||
// 解析响应报文 |
|||
$response = json_decode($response, true); |
|||
$response_data_crypted = $response['data']; |
|||
$response_sign = $response['sign']; |
|||
// echo "\r\n"; |
|||
// echo "[response sign]: {$response_sign}"; |
|||
// echo "\r\n"; |
|||
// echo "[response data (ciphertext)]: {$response_data_crypted}"; |
|||
|
|||
// 调回之前的地址 |
|||
// header("Location: $redirect_url"); |
|||
// exit; |
|||
// 解密响应密文 |
|||
$response_data = $Base->Crypt->decryptTradeData($response_data_crypted); |
|||
if($response_data === false) |
|||
{ |
|||
// echo $Base->Crypt->err_msg; |
|||
$errorMessage = array( |
|||
"data"=>"decryptTradeData error..." |
|||
); |
|||
return json_encode($errorMessage,true); |
|||
die(); |
|||
} |
|||
// echo "\r\n"; |
|||
// echo "[response data(clear text)]: {$response_data}"; |
|||
// die(); |
|||
echo $response_data; |
|||
$_SESSION['response_data_json'] = $response_data; |
|||
return $response_data; |
|||
|
|||
// 调回之前的地址 |
|||
// header("Location: $redirect_url"); |
|||
// exit; |
|||
} |
|||
?> |
|||
|
|||
|
|||
Loading…
Reference in new issue