JSAPI调起支付
更新时间:2024.11.04通过JSAPI下单接口获取到发起支付的必要参数prepay_id,然后使用微信支付提供的前端JS方法调起公众号支付。
接口说明
支持商户:【普通服务商】
字段说明
请求参数
此API无后台接口交互,需要将列表中的数据签名
appId
必填 string(32)
商户申请的公众号对应的AppID,由微信支付生成,可在公众号后台查看。若下单时传了sub_appid,可为sub_appid的值。
timeStamp
必填 string(32)
时间戳,标准北京时间,时区为东八区,自1970年1月1日 0点0分0秒以来的秒数。注意:部分系统取到的值为毫秒级,需要转换成秒(10位数字)。
nonceStr
必填 string(32)
随机字符串,不长于32位。
package
必填 string(128)
JSAPI下单接口返回的prepay_id参数值,提交格式如:prepay_id=***
signType
必填 string(32)
签名类型,默认为RSA,仅支持RSA。
paySign
必填 string(256)
签名,使用字段AppID、timeStamp、nonceStr、package计算得出的签名值
应答参数
返回值 | 返回值说明 |
---|---|
get_brand_wcpay_request:ok | 支付成功 |
get_brand_wcpay_request:cancel | 支付过程中用户取消 |
get_brand_wcpay_request:fail | 支付失败 |
请求示例
JSAPI调起支付的参数需要按照签名规则进行签名计算
1、构造签名串
参与签名字段及格式:
数据举例:
2、计算签名值
绝大多数编程语言提供的签名函数支持对_签名数据_ 进行签名。强烈建议商户调用该类函数,使用商户私钥对_待签名串_进行SHA256 with RSA签名,并对签名结果进行_Base64编码_得到签名值。
下面我们使用命令行演示如何生成签名
signType参数不参与签名,但需要传递,默认值为RSA,生成的签名需要通过字段paySign传递