小程序调起支付
更新时间:2024.11.04通过小程序下单接口获取到发起支付的必要参数prepay_id,然后使用微信支付提供的小程序方法调起小程序支付。
接口说明
支持商户:【普通服务商】
字段说明
调用wx.requestPayment(OBJECT)发起微信支付
接口名称: wx.requestPayment,详见小程序API文档
Object请求参数说明
timeStamp
必填 string(32)
时间戳,标准北京时间,时区为东八区,自1970年1月1日 0点0分0秒以来的秒数。注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字)。
nonceStr
必填 string(32)
随机字符串,不长于32位。
package
必填 string(128)
小程序下单接口返回的prepay_id
参数值,提交格式如:prepay_id=***
signType
必填 string(32)
签名类型,默认为RSA,仅支持RSA。
paySign
必填 string(512)
签名,使用字段appid
、timeStamp
、nonceStr
、package
计算得出的签名值
签名所使用的appid
,为【小程序下单】时传入的appid
,微信支付会校验下单与调起支付所使用的appid
的一致性。
回调结果
回调类型 | errMsg | 说明 |
---|---|---|
success | requestPayment:ok | 调用支付成功 |
fail | requestPayment:fail cancel | 用户取消支付 |
fail | requestPayment:fail (detail message) | 调用支付失败,其中 |
请求示例
小程序调起支付的参数需要按照签名规则进行签名计算
1、构造签名串
参与签名字段及格式:
数据举例:
2、计算签名值
绝大多数编程语言提供的签名函数支持对签名数据进行签名。强烈建议商户调用该类函数,使用商户私钥对_待签名串_进行SHA256 with RSA签名,并对签名结果进行Base64编码得到签名值。
下面我们使用命令行演示如何生成签名
signType参数不参与签名,但需要传递,默认值为RSA,生成的签名需要通过字段paySign传递