2 changed files with 122 additions and 116 deletions
@ -1,122 +1,126 @@ |
|||||
<?php |
<?php |
||||
session_start(); |
function pay() |
||||
$openid = $_SESSION['openid']; |
{ |
||||
$redirect_url = $_SESSION['prev_url']; |
session_start(); |
||||
// var_dump($redirect_url); |
$openid = $_SESSION['openid']; |
||||
|
$redirect_url = $_SESSION['prev_url']; |
||||
// 加载基础类 |
// unset($_SESSION['prev_url']); |
||||
require_once('../library/Base.php'); |
// var_dump($redirect_url); |
||||
$Base = new Base(); |
|
||||
|
|
||||
// 获取配置信息 |
|
||||
$config = $Base->getConfig(); |
|
||||
// var_dump('<pre>', $config); |
|
||||
|
|
||||
// 接口URL(测试) |
// 加载基础类 |
||||
$api_url = $config['pay_url']; |
require_once('../library/Base.php'); |
||||
// $api_url = $_POST['url']; |
$Base = new Base(); |
||||
$message = array( |
|
||||
"url"=>$api_url, |
|
||||
); |
|
||||
// echo json_encode($message,true); |
|
||||
// 加个body字段传中文试试 |
|
||||
|
|
||||
// 组装交易报文 |
// 获取配置信息 |
||||
$reqsn_prefix = date('Ymd'); |
$config = $Base->getConfig(); |
||||
// var_dump("uniq_id(reqsn)"); |
// var_dump('<pre>', $config); |
||||
// 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, |
|
||||
); |
|
||||
|
|
||||
// 生成签名 |
// 接口URL(测试) |
||||
$sign = $Base->Crypt->makeSign($trade_data); |
$api_url = $config['pay_url']; |
||||
if($sign === false) |
// $api_url = $_POST['url']; |
||||
{ |
$message = array( |
||||
// echo $Base->Crypt->err_msg; |
"url"=>$api_url, |
||||
$errorMessage = array( |
|
||||
"data"=>"makeSign error..." |
|
||||
); |
); |
||||
return json_encode($errorMessage,true); |
// echo json_encode($message,true); |
||||
die(); |
// 加个body字段传中文试试 |
||||
} |
|
||||
// echo "\r\n"; |
|
||||
// echo "[sign]: {$sign}"; |
|
||||
// die(); |
|
||||
|
|
||||
// 加密交易报文 |
// 组装交易报文 |
||||
$crypted_trade_data = $Base->Crypt->encryptTradeData($trade_data); |
$reqsn_prefix = date('Ymd'); |
||||
if($crypted_trade_data === false) |
// var_dump("uniq_id(reqsn)"); |
||||
{ |
// echo "\r\n"; |
||||
// echo $Base->Crypt->err_msg; |
// var_dump(uniqid($reqsn_prefix)); |
||||
$errorMessage = array( |
$trade_data = array( |
||||
"data"=>"encryptTradeData error..." |
'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"; |
$sign = $Base->Crypt->makeSign($trade_data); |
||||
// var_dump($api_url); |
if($sign === false) |
||||
$response = $Base->Request->send($api_url, $crypted_trade_data, $sign); |
{ |
||||
if($response === false) |
// echo $Base->Crypt->err_msg; |
||||
{ |
$errorMessage = array( |
||||
// echo $Base->Request->err_msg; |
"data"=>"makeSign error..." |
||||
$errorMessage = array( |
); |
||||
"data"=>"send error..." |
return json_encode($errorMessage,true); |
||||
); |
die(); |
||||
return json_encode($errorMessage,true); |
} |
||||
die(); |
// echo "\r\n"; |
||||
} |
// echo "[sign]: {$sign}"; |
||||
// echo "\r\n"; |
// die(); |
||||
// echo "[response message]: {$response}"; |
|
||||
|
|
||||
// 解析响应报文 |
// 加密交易报文 |
||||
$response = json_decode($response, true); |
$crypted_trade_data = $Base->Crypt->encryptTradeData($trade_data); |
||||
$response_data_crypted = $response['data']; |
if($crypted_trade_data === false) |
||||
$response_sign = $response['sign']; |
{ |
||||
// echo "\r\n"; |
// echo $Base->Crypt->err_msg; |
||||
// echo "[response sign]: {$response_sign}"; |
$errorMessage = array( |
||||
// echo "\r\n"; |
"data"=>"encryptTradeData error..." |
||||
// echo "[response data (ciphertext)]: {$response_data_crypted}"; |
); |
||||
|
return json_encode($errorMessage,true); |
||||
|
die(); |
||||
|
} |
||||
|
// echo "\r\n"; |
||||
|
// echo "[crypted message]: {$crypted_trade_data}"; |
||||
|
// die(); |
||||
|
|
||||
// 解密响应密文 |
// 发送报文 |
||||
$response_data = $Base->Crypt->decryptTradeData($response_data_crypted); |
// echo "\r\n"; |
||||
if($response_data === false) |
// var_dump($api_url); |
||||
{ |
$response = $Base->Request->send($api_url, $crypted_trade_data, $sign); |
||||
// echo $Base->Crypt->err_msg; |
if($response === false) |
||||
$errorMessage = array( |
{ |
||||
"data"=>"decryptTradeData error..." |
// echo $Base->Request->err_msg; |
||||
); |
$errorMessage = array( |
||||
return json_encode($errorMessage,true); |
"data"=>"send error..." |
||||
die(); |
); |
||||
} |
return json_encode($errorMessage,true); |
||||
// echo "\r\n"; |
die(); |
||||
// echo "[response data(clear text)]: {$response_data}"; |
} |
||||
// die(); |
// echo "\r\n"; |
||||
echo $response_data; |
// echo "[response message]: {$response}"; |
||||
$_SESSION['response_data_json'] = $response_data; |
|
||||
|
// 解析响应报文 |
||||
|
$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"); |
$response_data = $Base->Crypt->decryptTradeData($response_data_crypted); |
||||
// exit; |
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