代付-php
<h3>Redirect.php</h3>
<pre><code class="language-php"><?php
$appId = '999FDGR34DFG34VZKI@SDSDA';
$appKey = 'DFG3423DF214YNRTYDFG34VER';
$notifyUrl = 'http://test.callback.com/callbackApi';
$requestUrl = '请求地址';
$inputData = array(
'appId' => $appId,
'orderType' => '1',
'merchOrderNo' => 'S1234567890123', //商户订单号
'orderDate' => '20201014124756', //订单提交时间 yyyyMMddHHmmss
'amount' => '100.00', //提现金额RMB
'accNo' => '1111222233334444', //银行卡号
'accName' => '张三', //开户名
'bankId' => '1', //银行代码
'notifyUrl' => $notifyUrl, //回调地址,为空则不接受回调
'clientIp' => '35.23.64.123', //请求者的ip
);
$sign = getSign($inputData, $appKey);
$inputData['bankBranch'] = '开户分行';
$inputData['province'] = '省';
$inputData['city'] = '市';
$inputData['version'] = 'V1.0';
$inputData['merchRemark'] = '请求备注,回调时后原样返回';
$inputData['signType'] = 'MD5';
$inputData['sign'] = $sign;
echo '请求报文:';
print_r($inputData);
$result = send_post($requestUrl, $inputData);
echo '请求回传:'.$result;
function getSign($data, $appKey){
if (!$appKey) {
return false;
}
unset($data['sign']);
ksort($data);
$dataStr = '';
foreach ($data as $k => $v) {
$dataStr .= $k . '=' . $v . "&";
}
$signStr = trim($dataStr, "&") . "&key=". $appKey;
echo '待签字串:'.$signStr.'<br>';
$sign = strtoupper(md5($signStr));
echo '签名字串:'.$sign.'<br>';
return $sign;
}
function send_post($url, $post_data) {
$postdata = http_build_query($post_data);
$options = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type:application/x-www-form-urlencoded',
'content' => $postdata,
'timeout' => 15 * 60 // 超時時間(單位:s)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}
?></code></pre>
<h3>Callback.php</h3>
<pre><code class="language-php"><?php
$appId = '999FDGR34DFG34VZKI@SDSDA';
$appKey = 'DFG3423DF214YNRTYDFG34VER';
$signData = array(
'appId' => $_POST["appId"],
'orderNo' => $_POST["orderNo"],
'merchOrderNo' => $_POST["merchOrderNo"],
'status' => $_POST["status"],
'amount' => $_POST["amount"],
'orderDate' => $_POST["orderDate"]
);
$respSign = $_POST['sign'];
$merchRemark = $_POST['merchRemark'];
$sign = getSign($signData, $appKey);
if($sign == $respSign){
exit('AUTOPAY');
}else{
exit('SIGN_ERROR');
}
function getSign($data, $appKey)
{
if (!$appKey) {
return false;
}
unset($data['sign']);
ksort($data);
$dataStr = '';
foreach ($data as $k => $v) {
$dataStr .= $k . '=' . $v . "&";
}
$signStr = trim($dataStr, "&") . "&key=". $appKey;
$sign = strtoupper(md5($signStr));
return $sign;
}
?></code></pre>