微信支付开发小结

这段时间在忙于微商城项目,在我负责的商城结算模块用到了微信公众号支付,所以便把过程中的一些实践和问题整理了下来!

1.微信支付环境准备

当然,这里的支付准备默认前提是你已经申请了微信公众平台等相关信息。

a.确保微信支付功能开通,可以前往对应的公众号平台查看;
Markdown

b.在公众号的微信支付页面设置支付授权目录;
Markdown

c.前往对应的商户平台设置支付密钥和授权目录,并下载相应的证书文件;
Markdown

2.场景业务流程

a.用户下单
Markdown

b.公众号支付
Markdown

3.微信支付服务(wxpayserver)接口描述

a.正确返回格式:

1
2
3
{
data:xxx
}

xxx可以是任意对象,具体值应与相应业务接口返回为准。

b.错误返回格式:

1
2
3
4
5
6
{
error:{
code:xxx
message:xxx
}
}

code为错误代码,分为两大类,参数校验类和业务校验类。code值为wxPayError.params为参数校验类错误,其对应的message信息为提示具体的字段错误及其原因。剩余的所有code值都是业务结果错误的返回,具体描述也在message里面

c.涉及的接口列表

3.1请求h5支付需要的预支付参数
基本信息
请求类型:HTTP
请求地址:/v1/pay/params
请求方式:post 数据类型:x-www-form-urlencode
响应类型:json
请求参数

参数名称 是否必须 类型 描述 默认值
body string 商品描述
out_trade_no string 商家内部唯一订单号
total_fee int 单位(分)
spbill_create_ip string 客户端ip
notify_url string 微信请求的支付回调
openid string 微信用户的openid

3.2统一下单接口
基本信息
请求类型:HTTP
请求地址:/v1/pay/unified
请求方式:post 数据类型:x-www-form-urlencode
响应类型:json
请求参数

参数名称 是否必须 类型 描述 默认值
body string 商品描述
out_trade_no string 商家内部唯一订单号
total_fee int 单位(分)
spbill_create_ip string 客户端ip
notify_url string 微信请求的支付回调
openid string 微信用户的openid(如果支付类型为jsapi,为必填)
trade_type string 支付类型

3.3查询指定订单的支付情况
基本信息
请求类型:HTTP
请求地址:/v1/pay/queryOrder
请求方式:post 数据类型:x-www-form-urlencode
响应类型:json
请求参数

参数名称 是否必须 类型 描述 默认值
transaction_id string 微信订单号
out_trade_no string 商家内部唯一订单号

3.4 关闭指定订单
基本信息
请求类型:HTTP
请求地址:/v1/pay/closeOrder
请求方式:post 数据类型:x-www-form-urlencode
响应类型:json
请求参数

参数名称 是否必须 类型 描述 默认值
transaction_id string 微信订单号
out_trade_no string 商家内部唯一订单号