银盛支付API接口对接 - 开发教程指南
银盛支付API接口对接是将银盛支付功能集成到商户系统的关键步骤。本文将详细介绍银盛支付API接口对接的完整流程、开发要点和注意事项,帮助开发者快速完成对接工作。
一、银盛支付API接口对接概述
银盛支付API接口对接主要包括以下几个环节:
- 获取商户号和API密钥
- 阅读API接口文档
- 下载SDK开发包
- 开发对接代码
- 测试环境调试
- 生产环境上线
二、对接前准备工作
1. 获取必要信息
在开始对接前,确保已获取以下信息:
- 商户号:审核通过后分配的唯一标识
- API密钥:用于接口签名验证的密钥
- 测试环境地址:用于开发调试
- 生产环境地址:正式上线使用
2. 开发环境要求
- 支持HTTP/HTTPS协议的Web服务器
- 支持JSON/XML数据格式解析
- 支持MD5/RSA签名算法
- 服务器可访问外网(用于接收异步通知)
三、接口对接开发步骤
步骤一:配置商户信息
// 配置商户信息
$config = [
'merchant_no' => '您的商户号',
'api_key' => '您的API密钥',
'notify_url' => 'https://your-domain.com/notify',
'api_url' => 'https://api.yinsheng.com'
];
步骤二:实现签名算法
银盛支付接口采用MD5签名验证,签名规则如下:
// 签名生成步骤
// 1. 将所有参数按字母顺序排序
// 2. 拼接成 key=value&key=value 格式
// 3. 在末尾追加 &key=API密钥
// 4. 进行MD5加密,转为大写
function generateSign($params, $apiKey) {
ksort($params);
$signStr = '';
foreach ($params as $key => $value) {
if ($key != 'sign' && $value != '') {
$signStr .= $key . '=' . $value . '&';
}
}
$signStr .= 'key=' . $apiKey;
return strtoupper(md5($signStr));
}
步骤三:发起支付请求
// 扫码支付请求示例
function createQrPay($orderNo, $amount, $subject) {
$params = [
'merchant_no' => '商户号',
'order_no' => $orderNo,
'amount' => $amount,
'pay_type' => 'WECHAT_NATIVE',
'subject' => $subject,
'notify_url' => 'https://your-domain.com/notify',
'timestamp' => time()
];
// 生成签名
$params['sign'] = generateSign($params, $apiKey);
// 发送请求
$response = httpPost($apiUrl . '/pay/create', $params);
return json_decode($response, true);
}
步骤四:处理异步通知
// 异步通知处理
function handleNotify($postData) {
// 验证签名
$sign = $postData['sign'];
unset($postData['sign']);
$calcSign = generateSign($postData, $apiKey);
if ($sign != $calcSign) {
return 'FAIL'; // 签名验证失败
}
// 处理业务逻辑
$orderNo = $postData['order_no'];
$tradeNo = $postData['trade_no'];
$amount = $postData['amount'];
// 更新订单状态...
return 'SUCCESS'; // 返回成功
}
四、SDK开发包使用
银盛支付提供多种语言的SDK开发包,简化开发工作:
Java SDK
// Maven依赖
<dependency>
<groupId>com.yinsheng</groupId>
<artifactId>yinsheng-pay-sdk</artifactId>
<version>1.0.0</version>
</dependency>
// 使用示例
YinShengClient client = new YinShengClient(merchantNo, apiKey);
PayRequest request = new PayRequest();
request.setOrderNo("ORDER123456");
request.setAmount("100.00");
request.setPayType("WECHAT_NATIVE");
PayResponse response = client.createPay(request);
PHP SDK
// Composer安装
composer require yinsheng/pay-sdk
// 使用示例
$client = new YinShengClient($merchantNo, $apiKey);
$result = $client->createPay([
'order_no' => 'ORDER123456',
'amount' => '100.00',
'pay_type' => 'WECHAT_NATIVE'
]);
五、对接注意事项
- 安全性:API密钥需妥善保管,不要硬编码在代码中
- 幂等性:同一订单重复请求不会重复扣款
- 超时处理:接口超时需主动查询订单状态
- 异步通知:确保回调地址可访问,正确处理通知
- 日志记录:记录请求和响应日志,便于排查问题
六、常见问题解决
Q:签名验证失败怎么办?
检查参数是否正确拼接,密钥是否正确,编码是否统一使用UTF-8。
Q:收不到异步通知怎么办?
检查回调地址是否可访问,服务器防火墙是否开放,是否正确返回SUCCESS。
Q:测试环境和生产环境有什么区别?
测试环境使用测试商户号和密钥,不会产生真实交易。生产环境使用正式商户号,产生真实资金流转。
七、技术支持
如果您在银盛支付API接口对接过程中遇到问题,欢迎联系我们获取技术支持:
- 技术支持:136-3138-7748
- 客服热线:400-600-9811
地址:广州市天河区体育西路191号中石化大厦B塔48楼