uniapp支付平台
uniapp支付平台集成方法
uniapp支持多种支付平台集成,包括微信支付、支付宝、Apple Pay等。以下为常见支付平台的集成方式:
微信支付
在manifest.json中勾选微信支付模块,配置AppID。后端需生成预支付订单,前端调用uni.requestPayment触发支付。示例代码:
uni.requestPayment({
provider: 'wxpay',
orderInfo: '后端返回的预支付订单信息',
success: function(res) { console.log('支付成功'); },
fail: function(err) { console.log('支付失败'); }
});
支付宝支付
配置支付宝沙箱环境或正式环境参数。使用相同API,更换provider为alipay:
uni.requestPayment({
provider: 'alipay',
orderInfo: '后端生成的订单字符串',
success: function(res) { console.log('支付成功'); }
});
Apple Pay 仅iOS平台可用,需在苹果开发者中心配置Merchant ID。调用方式:
uni.requestPayment({
provider: 'applepay',
orderInfo: {
currencyCode: 'USD',
countryCode: 'US',
// 其他必要参数
},
success: function(res) { console.log('支付完成'); }
});
支付流程注意事项
- 所有支付均需后端配合生成订单签名或令牌
- 测试阶段建议使用各平台沙箱环境
- 微信支付需额外处理Android平台包名签名
- 支付宝国际版需单独申请配置
- 苹果应用内支付项目需通过App Store审核
常见问题处理
支付结果验证 务必通过后端接口校验支付结果,不可仅依赖前端回调。后端应调用支付平台API验证交易真实性。
多端兼容
使用uni.getProvider检测当前环境支持的支付方式:
uni.getProvider({
service: 'payment',
success: function(res) {
console.log(res.provider); // 输出可用支付方式
}
});
错误代码 典型错误码处理:
- 微信支付
-2为用户取消,需引导重新支付 - 支付宝
6001为交易已取消 - 系统级错误建议记录日志并提示用户重试
扩展支付方案
对于Stripe、PayPal等国际支付平台,可通过WebView嵌入或使用原生插件实现。社区插件市场提供现成模块如uni-pay,支持聚合多平台支付接口。







