银联支付是中国银联提供的第三方支付平台,支持多种支付方式,包括在线支付、移动支付等。通过银联支付接口,开发者可以在自己的网站或应用中集成银联支付功能,为用户提供便捷的支付体验。
银联支付接口主要包括以下几种类型:
银联支付接口适用于各种需要在线支付的场景,如电子商务网站、在线教育平台、旅游预订系统等。
以下是一个简单的PHP银联支付接口Demo:
<?php
// 配置银联支付参数
$merId = '你的商户ID';
$merKey = '你的商户密钥';
$orderId = '订单号';
$amount = '订单金额';
$txnTime = date('YmdHis');
// 构建支付请求参数
$params = [
'version' => '1.0',
'encoding' => 'utf-8',
'certId' => '',
'merId' => $merId,
'accessType' => '0',
'merOrderNo' => $orderId,
'txnAmt' => $amount * 100, // 金额单位为分
'txnTime' => $txnTime,
'txnType' => '01',
'txnSubType' => '01',
'bizType' => '000201',
'frontUrl' => 'http://你的服务器地址/notify.php', // 支付结果通知地址
'backUrl' => 'http://你的服务器地址/return.php', // 支付结果返回地址
];
// 签名
$sign = sign($params, $merKey);
$params['signature'] = $sign;
// 发送支付请求
$response = sendRequest('https://api.unionpay.com/gateway', $params);
if ($response['respCode'] == '00') {
echo '支付请求成功,跳转至支付页面';
// 跳转到银联支付页面
header('Location: ' . $response['redirectUrl']);
} else {
echo '支付请求失败,错误码:' . $response['respCode'];
}
/**
* 签名函数
*/
function sign($params, $merKey) {
ksort($params);
$str = '';
foreach ($params as $key => $value) {
if (!empty($value)) {
$str .= '&' . $key . '=' . $value;
}
}
$str = substr($str, 1) . '&key=' . $merKey;
return strtoupper(md5($str));
}
/**
* 发送请求函数
*/
function sendRequest($url, $data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
?>frontUrl和backUrl配置是否正确,并确保服务器能够接收和处理POST请求。redirectUrl是否正确,并确保浏览器能够正常访问该URL。通过以上步骤和示例代码,你可以快速集成银联支付功能到你的PHP项目中。如果遇到具体问题,可以参考银联支付官方文档或联系银联技术支持获取帮助。