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仅做成功页面展示,验单逻辑需在异步通知中完成