19支付 - 文档中心

JSAPI 支付


JSAPI 接口请求步骤

1.参照 《获取 OPENID 接口》,获得用户 openid

2.通过该JSAPI 接口 构造订单参数获取 jsapi 预支付参数

3.通过 jssdk 或 WeixinJsBridge 方式自行发起支付

4.服务端接收异步通知

请求地址

环境 HTTPS请求地址
正式环境 https://19zf.cn/api/jsapi.html

请求参数

参数 类型 是否必填 描述 示例值
app_id String 19支付平台分配和商户的APPID,19开头 191008821006
mch_id String 合作商户的商户号 1575500091
total_fee int 订单总金额 单位:分
out_trade_no String 商户订单号,需保证在商户端不重复 20150320010101001
body String 订单标题 Iphone8 16G
attach String 商户自定义数据包,在查询API和异步通知中原样返回 主要用于商户携带订单的自定义数据
notify_url String 接收支付成功后异步通知的回调地址。必须为可直接访问的URL,不能带参数、session验证、csrf验证。留空则不通知 http://商户自定义地址/notify_url.html
sign_type String 商户生成签名字符串所使用的签名算法类型,默认支持MD5 MD5
openid String 用户openid。详见《获取 OPENID 接口》 oT_0R1etkSgOiwGgNve-tmd0h1h2
sign String 数据签名,详见 签名算法 95AD5686E715127AA03F8324079673F0

请求响应参数

参数 类型 是否必填 描述 示例值
result_code String 接口响应结果 SUCCESS:请求成功,FAIL:请求失败
result_msg String 接口响应结果描述 请求成功、请求失败、签名验证失败等
app_id String 19支付平台分配和商户的APPID,19开头 191008821006
mch_id String 合作商户的商户号 1575500091
total_fee int 订单总金额 单位:分
pay_order_id String 19支付平台 订单号 19开头
out_trade_no String 商户订单号,需保证在商户端不重复 20150320010101001
jsapi String 用于拉起支付的预支付参数 weixin://wxpay/...
sign_type String 默认MD5 MD5
sign String 数据签名,详见 签名算法 95AD5686E715127AA03F8324079673F0

请求响应结果示例(本示例仅供参考,具体参数以实际通知为准)

{"jsapi":"{"appId":"wxffa33wb3bbe13de","nonceStr":"b0tHiKWUSuf0OE4D","package":"prepay_id=wx06183309573560f8d8a7f6e51285471567","paySign":"6D6A3A27BC16C344692D10F9B72073BE","signType":"MD5","timeStamp":"1573036297"}","app_id":"191008821006","mch_id":"1575500091","out_trade_no":"20191106183309","pay_order_id":"1919110618318971","result_code":"SUCCESS","result_msg":"成功","sign":"FAE02D0C5D3977CD016DA4319A80C99B","total_fee":"1"}

关于请求响应参数 jsapi 的重要说明

对象 jsapi 包含参数:appId、timeStamp、nonceStr、package、signType,参数区分大小写,该参数可直接用于前端JS拉起支付

前端JS拉起支付演示代码

JS支付返回结果值说明

返回值 描述
get_brand_wcpay_request:ok 支付成功
get_brand_wcpay_request:cancel 支付过程中用户取消
get_brand_wcpay_request:fail 支付失败
调用支付JSAPI缺少参数:total_fee 1、请检查预支付会话标识prepay_id是否已失效
2、请求的appid与下单接口的appid是否一致

注意:

1.WeixinJSBridge内置对象在其他浏览器中无效。

2.JS API的返回结果get_brand_wcpay_request:ok仅在用户成功完成支付时返回。

3.由于前端交互复杂,get_brand_wcpay_request:cancel或者get_brand_wcpay_request:fail可以统一处理为用户遇到错误或者主动放弃,不必细化区分。

4.用户支付成功后,后台系统会触发异步通知

5.建议商户:返回结果get_brand_wcpay_request:ok仅做成功页面展示,验单逻辑需在异步通知中完成

最后更新: 2020-03-07