拉卡拉API支持小程序支付吗?微信小程序支付参数配置

浏览量:114 拉卡拉分账业务部

拉卡拉API支持小程序支付吗?微信小程序支付参数配置

微信小程序是商家变现的核心场景,但直接对接微信支付门槛高、周期长。拉卡拉API能不能支持小程序支付?需要配置哪些参数?服务端怎么下单?前端怎么调起?本文详细解析拉卡拉聚合支付API的微信小程序支付能力、参数配置、完整接入流程和常见问题。

拉卡拉API接口 

微信小程序通过拉卡拉API对接支付架构示意

1. 拉卡拉API支持小程序支付吗

明确回答:支持。拉卡拉聚合支付API一站式支持微信小程序、APP、公众号、H5全场景收款。小程序支付通过JSAPI渠道类型实现,服务端调用拉卡拉统一下单接口传入小程序用户openid,获取支付参数后小程序前端调起微信支付,底层走微信官方支付通道。

支持能力概览:

• 支付场景:微信小程序支付(JSAPI)、微信APP支付、微信公众号支付、微信H5支付、微信扫码支付、支付宝全场景

• 接入方式:原生JSAPI调起(推荐)、聚合收银台web-view加载(兼容方案)

• 底层通道:拉卡拉是"聚合收银"方案,底层走微信和支付宝官方通道,资金安全合规

• 前置条件:需有已认证的微信小程序和关联的微信商户号(拉卡拉可协助申请)

• 对接周期:3-5个工作日完成开发联调,比直接对接微信支付节省76%技术成本

2. 两种接入方式对比

对比项

原生JSAPI调起(推荐)

聚合收银台web-view

实现原理

拉卡拉下单返回微信支付参数,小程序wx.requestPayment直接调起

拉卡拉返回收银台URL,小程序web-view加载收银台页面

用户体验

原生支付弹窗,体验流畅,无页面跳转

需加载H5收银台,多一次页面跳转

开发量

需服务端下单+前端调起,代码量适中

只需获取URL并加载,开发量最小

域名配置

只需配置request合法域名

需配置request和web-view业务域名

支付方式

仅微信支付(小程序内只能微信支付)

收银台可支持微信+支付宝(小程序内实际仅微信)

推荐场景

绝大多数小程序支付场景

快速验证、无开发资源、兼容多渠道

3. 前置准备

3.1 1. 微信侧准备

• 已认证的微信小程序:在微信公众平台注册并完成企业认证(300元/年)

• 微信商户号:在微信支付商户平台申请,主体需与小程序一致

• 关联小程序:在微信商户平台→产品中心→APPID账号管理中,关联小程序APPID

• 获取小程序AppID:微信公众平台→开发→开发设置→AppID

• 获取用户openid:小程序端通过wx.login获取code,服务端用code换取openid

3.2 2. 拉卡拉侧准备

• 开通拉卡拉商户:联系95016或商务团队,提交企业资质开通聚合支付

• 获取API凭证:拉卡拉开放平台(o.lakala.com)获取商户号(MID)、终端号(TID)、AppKey、API Secret

• 配置回调地址:在开放平台配置支付结果异步通知URL(必须公网可访问的HTTPS地址)

• 开通JSAPI支付:确认商户号已开通微信JSAPI支付权限

• 配置小程序AppID:将小程序AppID提交给拉卡拉,绑定到商户号下

3.3 3. 小程序后台配置

• request合法域名:微信公众平台→开发→开发设置→服务器域名,添加拉卡拉API域名  

○ 测试环境:https://test.wsmsd.cn

○ 生产环境:https://s2.lakala.com

• web-view业务域名(仅收银台方式需要):添加拉卡拉收银台域名

• IP白名单:将服务端出口IP添加到微信商户平台IP白名单

4. 小程序支付核心参数配置

4.1 服务端下单请求核心参数

参数名

类型

必填

说明

merchantNo

String

是

拉卡拉商户号(MID)

termNo

String

是

拉卡拉终端号(TID)

outTradeNo

String

是

商户订单号,每次请求唯一,不可重复

totalAmount

String

是

订单总金额,单位为分(如100元传10000)

payMode

String

是

支付方式,微信支付传 WECHAT

channelType

String

是

渠道类型,小程序支付传 JSAPI

subAppId

String

是

微信小程序AppID(获取openid所用的appid)

openId

String

是

用户在小程序appid下的唯一标识(微信openid)

body

String

是

商品描述,如"小程序订单支付"

notifyUrl

String

是

支付结果异步回调地址,公网HTTPS

attach

String

否

附加数据,回调时原样返回,可传业务标识

orderTime

String

是

订单时间,格式yyyyMMddHHmmss

4.2 下单响应参数(前端调起支付用)

下单成功后,拉卡拉返回微信小程序调起支付所需的参数:

• appId:小程序AppID(与请求中subAppId一致)

• timeStamp:时间戳,当前秒级时间

• nonceStr:随机字符串,32位以内

• package:预支付交易会话ID,格式为 prepay_id=xxxxxx

• signType:签名方式,通常为RSA或MD5

• paySign:支付签名,拉卡拉已用微信商户密钥签好

关键提示:openid是小程序支付的必填参数,必须是用户在当前小程序AppID下的openid。通过wx.login获取code后,服务端调用微信auth.code2Session接口换取openid。openid与AppID绑定,不同小程序的openid不通用。

5. 服务端下单完整流程

5.1 步骤1:小程序端获取code

小程序前端调用wx.login()获取临时登录凭证code,将code发送给商户服务端。

5.2 步骤2:服务端用code换取openid

商户服务端调用微信接口:

• 请求地址:https://api.weixin.qq.com/sns/jscode2session

• 参数:appid(小程序AppID)、secret(小程序AppSecret)、js_code(前端传来的code)、grant_type=authorization_code

• 返回:openid(用户唯一标识)、session_key(会话密钥)

• 建议:将openid与用户账号绑定,后续支付直接使用,无需每次重新获取

5.3 步骤3:服务端调用拉卡拉统一下单

商户服务端组装下单参数(见上方参数表),使用拉卡拉API Secret对请求参数签名后,调用拉卡拉统一下单接口。拉卡拉系统调用微信支付创建预支付订单,生成prepay_id。

5.4 步骤4:返回支付参数给小程序

拉卡拉返回调起支付所需的6个参数(appId、timeStamp、nonceStr、package、signType、paySign),商户服务端将这些参数透传给小程序前端。

6. 小程序前端调起支付

6.1 wx.requestPayment调用

小程序前端收到支付参数后,调用wx.requestPayment()调起微信支付:

• timeStamp:拉卡拉返回的时间戳(注意是字符串类型)

• nonceStr:拉卡拉返回的随机字符串

• package:拉卡拉返回的prepay_id=xxx

• signType:拉卡拉返回的签名方式(RSA/MD5)

• paySign:拉卡拉返回的支付签名

6.2 支付结果回调处理

• success回调:用户支付成功,小程序端可跳转到支付成功页,但不能以此作为支付成功依据,必须以服务端异步回调为准

• fail回调:用户取消支付或支付失败,提示用户重新支付

• complete回调:支付流程结束(无论成功失败),可做清理操作

重要:小程序端的success回调仅表示用户完成了支付操作,实际支付结果必须以拉卡拉异步回调(notifyUrl)为准。前端收到success后应主动调用服务端查询接口确认订单状态,防止因网络问题导致回调丢失。

7. 支付回调处理

7.1 异步回调通知

用户支付成功后,拉卡拉会向商户配置的notifyUrl发送POST请求,通知支付结果。

7.2 回调处理规范

1. 验证签名:使用拉卡拉公钥验证回调签名,确保回调来源可信,防止伪造

2. 幂等处理:同一订单可能收到多次回调,根据outTradeNo做幂等判断,避免重复更新订单

3. 更新订单状态:验签通过后,将订单状态更新为"已支付",触发后续业务逻辑(发货、开通服务等)

4. 返回成功响应:处理完成后返回指定的成功响应(通常是SUCCESS或特定JSON),否则拉卡拉会重试推送

5. 记录回调日志:记录原始回调报文,便于对账和排查问题

7.3 回调重试机制

• 拉卡拉收到非成功响应或超时未响应时,会按间隔重试推送

• 建议同时有定时任务主动查询"待支付"订单状态,防止回调丢失

• 主动查询可调用拉卡拉订单查询接口,传入outTradeNo获取最新支付状态

8. 接入六步流程

 

微信小程序支付接入六步流程示意

8.1 第一步:微信商户号申请与关联

• 注册微信小程序并完成企业认证

• 申请微信支付商户号(拉卡拉可协助申请)

• 在微信商户平台关联小程序AppID

• 获取小程序AppID和AppSecret

8.2 第二步:拉卡拉API配置

• 开通拉卡拉聚合支付商户

• 获取商户号(MID)、终端号(TID)、AppKey、API Secret

• 配置支付回调地址notifyUrl

• 提交小程序AppID给拉卡拉绑定

8.3 第三步:域名白名单配置

• 微信公众平台配置request合法域名(拉卡拉测试和生产域名)

• 微信商户平台配置IP白名单(服务端出口IP)

• 如用收银台方式,额外配置web-view业务域名

8.4 第四步:服务端下单开发

• 实现wx.login code换取openid逻辑

• 集成拉卡拉SDK或自行封装签名和请求

• 调用统一下单接口,传入JSAPI渠道和openid

• 获取支付参数并返回给小程序前端

8.5 第五步:前端调起支付

• 小程序端调用wx.requestPayment,传入拉卡拉返回的支付参数

• 处理success/fail/complete回调

• 支付成功后调用服务端确认订单状态

• 跳转支付结果页面

8.6 第六步:回调验签与联调上线

• 实现异步回调接收、验签、幂等处理

• 在测试环境跑通完整支付流程

• 切换生产环境,小流量验证

• 正式上线,监控支付成功率和回调到达率

拉卡拉分账系统

9. 常见问题解答

9.1 没有微信商户号能用拉卡拉小程序支付吗?

可以。拉卡拉可以协助商户申请微信支付商户号,商户只需提供企业资质,拉卡拉走快速入驻通道。但小程序本身必须是已认证的企业主体小程序,个人小程序无法开通微信支付。如果已有微信商户号,直接关联小程序AppID即可,拉卡拉支持使用商户自有微信商户号。

9.2 openid获取失败怎么办?

openid获取失败常见原因:①AppID或AppSecret配置错误;②code已过期(code有效期5分钟,只能使用一次);③小程序未在微信公众平台配置服务器域名;④网络问题。建议:将openid与用户账号绑定缓存,避免每次支付都重新获取;服务端做好错误处理和重试机制。

9.3 小程序支付提示"商户号该产品权限未开通"怎么办?

这是因为微信商户号未开通JSAPI/小程序支付权限。解决方法:登录微信商户平台→产品中心→我的产品,确认JSAPI支付已开通;在APPID账号管理中确认小程序AppID已关联且授权确认;联系拉卡拉客服确认商户号已绑定小程序支付权限。通常开通后10分钟左右生效。

9.4 支付成功了但回调没收到怎么办?

首先检查:①notifyUrl是否为公网可访问的HTTPS地址;②回调地址是否在拉卡拉开放平台正确配置;③服务端是否返回了成功响应(非成功会重试);④服务器防火墙是否拦截了拉卡拉回调IP。如果确认配置正确但仍未收到,使用拉卡拉订单查询接口主动查询订单状态,同时联系技术支持排查。建议业务系统必须有主动查询补单机制。

9.5 拉卡拉小程序支付费率是多少?

微信小程序支付费率与微信官方标准一致,通常为0.6%(不同行业可能有差异,如非营利组织、公立医院等有优惠费率)。拉卡拉作为聚合支付机构,不额外加收费率,商户按微信官方标准费率结算。具体费率以签约时的协议为准,可联系95016或客户经理确认。

9.6 uni-app或Taro开发的小程序怎么对接?

uni-app和Taro等跨端框架都封装了微信小程序的支付API,调用方式与原生小程序一致。uni-app使用uni.requestPayment(),Taro使用Taro.requestPayment(),参数与wx.requestPayment完全相同。需要注意在manifest.json中配置小程序AppID,服务端下单逻辑与原生小程序无差异。

9.7 小程序支付能同时对接分账吗?

可以。拉卡拉统一下单接口支持同时传入分账参数,用户支付成功后自动触发分账。在下单请求中添加分账接收方列表(RecvDatas)和分账计算类型(CalType),即可实现"支付+分账"一步完成。适合电商平台、外卖平台、内容平台等需要多方分成的小程序场景。

9.8 测试环境怎么测试小程序支付?

拉卡拉提供测试环境(test.wsmsd.cn)和测试商户号,开发者可在测试环境完成联调。微信小程序测试支付需要使用微信支付沙箱环境,或使用小额真实支付测试(建议0.01元)。测试时注意:①测试环境域名需添加到小程序request合法域名;②测试环境返回的支付参数可能需要使用微信沙箱钱包;③联调通过后切换生产环境密钥和域名。

总结:拉卡拉聚合支付API明确支持微信小程序支付,通过JSAPI渠道类型实现。两种接入方式:原生JSAPI调起(推荐,体验流畅)和聚合收银台web-view(开发量小)。前置准备包括:微信小程序认证+微信商户号+关联AppID、拉卡拉商户开通+API凭证+回调配置、小程序后台域名白名单。服务端下单核心参数:merchantNo、termNo、outTradeNo、totalAmount(单位分)、payMode=WECHAT、channelType=JSAPI、subAppId(小程序AppID)、openId(用户openid)、notifyUrl。下单返回appId、timeStamp、nonceStr、package、signType、paySign六个参数,小程序前端wx.requestPayment调起支付。支付结果以异步回调为准,回调需验签+幂等+返回成功响应,配合主动查询防丢失。接入六步:微信商户号申请→拉卡拉API配置→域名白名单→服务端下单开发→前端调起支付→回调验签联调上线。对接周期3-5个工作日,费率与微信官方一致0.6%,支持同时对接分账功能。

相关推荐

精品案例

免费分账资料获取:23时29分59秒

已有 6658 人申请成功
  • 姓名*
  • 电话*
  • 备注   
  • 提交(免费分账资料提供,领完即止)
友情链接:
立即咨询
在线留言
顶部

截屏,微信识别二维码

微信号:18086829649

(点击号码复制,添加好友)

关闭