uniapp支付平台
Uniapp 支付平台集成方法
Uniapp 支持跨平台支付功能,包括微信支付、支付宝支付、Apple Pay 等。以下为常见支付平台的集成方式:
微信支付
在 manifest.json 中配置微信支付 AppID,并确保已申请微信支付权限。调用 uni.requestPayment 接口,传入微信支付所需的参数(如 timeStamp、nonceStr、package 等)。
uni.requestPayment({
provider: 'wxpay',
orderInfo: {
appid: 'wx1234567890abcdef',
partnerid: '1900000109',
prepayid: 'wx20201234567890abcdef',
package: 'Sign=WXPay',
noncestr: '5K8264ILTKCH16CQ2502SI8ZNMTM67VS',
timestamp: '1601234567',
sign: 'C380BEC2BFD727A4B6845133519F3AD6'
},
success: (res) => console.log('支付成功'),
fail: (err) => console.error('支付失败', err)
});
支付宝支付
同样使用 uni.requestPayment,设置 provider 为 alipay,并传入支付宝的订单信息字符串。
uni.requestPayment({
provider: 'alipay',
orderInfo: 'app_id=2019071065881234&biz_content={"subject":"测试商品","out_trade_no":"ORDER123456","total_amount":"0.01"}&charset=utf-8&format=json&method=alipay.trade.app.pay&sign_type=RSA2×tamp=2020-01-01 12:00:00&version=1.0&sign=...',
success: (res) => console.log('支付成功'),
fail: (err) => console.error('支付失败', err)
});
Apple Pay(iOS)
需在苹果开发者后台配置 Merchant ID,并在 manifest.json 中启用 Apple Pay。调用时指定 provider 为 applepay。
uni.requestPayment({
provider: 'applepay',
orderInfo: {
currencyCode: 'USD',
countryCode: 'US',
merchantIdentifier: 'merchant.com.example.app',
paymentSummaryItems: [
{ label: '商品', amount: '0.01' }
]
},
success: (res) => console.log('支付成功'),
fail: (err) => console.error('支付失败', err)
});
注意事项
- 各支付平台需单独申请商户资质,并配置正确的密钥和证书。
- 微信支付和支付宝的
orderInfo结构不同,需按平台规范生成。 - 测试阶段建议使用沙箱环境,正式上线前完成真实交易验证。
后端对接
支付通常需后端生成订单和签名,前端仅发起支付请求。示例后端流程:
- 创建订单并生成支付参数
- 将参数签名后返回给前端
- 前端调用
uni.requestPayment发起支付 - 后端接收支付回调并更新订单状态







