uniapp接入杉德
接入杉德支付的基本流程
在UniApp中接入杉德支付需要按照杉德支付的官方文档进行配置,通常包括商户注册、密钥配置、接口对接等步骤。以下为详细操作指南:
注册杉德商户账号
访问杉德支付官网或联系其商务人员完成商户注册,获取商户号(merchantId)、终端号(terminalId)以及密钥(key)等关键信息。这些信息将用于后续的接口调用和签名验证。
配置支付参数
在UniApp项目中,需将杉德支付的配置参数存储在安全的位置(如manifest.json或环境变量)。示例配置如下:
{
"sandpay": {
"merchantId": "您的商户号",
"terminalId": "终端号",
"key": "商户密钥",
"notifyUrl": "支付回调地址"
}
}
集成SDK或调用API
杉德支付通常提供H5或原生SDK。若使用H5方式,可通过uni.request发起支付请求;若需原生能力,需通过UniApp的Native.js或原生插件实现。以下是H5支付的示例代码:
uni.request({
url: 'https://支付网关地址',
method: 'POST',
data: {
merchantId: config.sandpay.merchantId,
orderId: '订单号',
amount: '金额(单位:分)',
sign: '生成的签名'
},
success(res) {
if (res.data.code === '0000') {
// 跳转杉德支付页面
window.location.href = res.data.payUrl;
}
}
});
签名生成与验证
杉德支付要求对请求参数进行签名。使用商户密钥通过MD5或RSA算法生成签名。以下是MD5签名的示例:
function generateSign(params, key) {
const sortedParams = Object.keys(params).sort().map(k => `${k}=${params[k]}`);
const signStr = sortedParams.join('&') + key;
return md5(signStr).toUpperCase();
}
处理支付回调
在UniApp中配置全局路由或服务器接口接收杉德支付的异步通知。验证回调签名后更新订单状态:
router.post('/sandpay/notify', (req, res) => {
const isValid = verifySign(req.body, config.sandpay.key);
if (isValid) {
// 更新订单状态
res.send('SUCCESS');
}
});
测试与上线
在杉德支付的沙箱环境中完成测试,确保支付流程无误。测试通过后,切换至生产环境配置,提交应用商店审核。
注意事项
- 跨平台兼容性:若需在iOS和Android端使用原生支付功能,需分别处理权限和URL Scheme。
- 签名安全:密钥严禁前端硬编码,建议通过后端接口转发支付请求。
- 错误处理:需捕获网络异常、支付取消等场景,提供用户友好提示。
如需更详细的技术参数,请参考杉德支付官方文档或联系其技术支持。






