统一下单接口
此接口可用于服务器后端发起支付请求,会返回支付二维码链接、支付跳转url等。
请求地址:
api/pay/create
请求方式:
POST
请求参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户ID | pid | 是 | Int | 1001 | |
| 接口类型 | method | 是 | String | web | 接口类型列表 |
| 设备类型 | device | 否 | String | pc | 仅通用网页支付需要传 设备类型列表 |
| 支付方式 | type | 是 | String | alipay | 支付方式列表 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | |
| 异步通知地址 | notify_url | 是 | String | http://www.pay.com/notify_url.php | 服务器异步通知地址 |
| 跳转通知地址 | return_url | 是 | String | http://www.pay.com/return_url.php | 页面跳转通知地址 |
| 商品名称 | name | 是 | String | VIP会员 | 如超过127个字节会自动截取 |
| 商品金额 | money | 是 | String | 1.00 | 单位:元,最大2位小数 |
| 用户IP地址 | clientip | 是 | String | 192.168.1.100 | 用户发起支付的IP地址 |
| 业务扩展参数 | param | 否 | String | 没有请留空 | 支付后原样返回 |
| 被扫支付授权码 | auth_code | 否 | String | 仅被扫支付需要传 | |
| 用户Openid | sub_openid | 否 | String | 仅JSAPI支付需要传 | |
| 公众号AppId | sub_appid | 否 | String | 仅JSAPI支付需要传 | |
| 当前时间戳 | timestamp | 是 | String | 1721206072 | 10位整数,单位秒 |
| 签名字符串 | sign | 是 | String | 参考签名规则 | |
| 签名类型 | sign_type | 是 | String | RSA | 默认为RSA |
返回参数说明:
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 0 | 0为成功,其它值为失败 |
| 错误信息 | msg | String | 失败时返回原因 | |
| 平台订单号 | trade_no | String | 20160806151343349 | 平台内部的订单号 |
| 发起支付类型 | pay_type | String | jump | 参考 发起支付类型说明 |
| 发起支付参数 | pay_info | String | weixin://wxpay/bizpayurl?pr=04IPMKM | 根据不同的发起支付类型,返回内容也不一样 |
| 当前时间戳 | timestamp | String | 1721206072 | 10位整数,单位秒 |
| 签名字符串 | sign | String | 参考签名规则 | |
| 签名类型 | sign_type | String | RSA | 默认为RSA |
返回示例:
{
"code": 0,
"trade_no": "20160806151343349",
"pay_type": "qrcode",
"pay_info": "weixin://wxpay/bizpayurl?pr=04IPMKM"
}{
"code": 0,
"trade_no": "20160806151343351",
"pay_type": "jsapi",
"pay_info": "{\"appId\":\"wx2421b1c4370ec43b\",\"timeStamp\":\"1395712654\",\"nonceStr\":\"e61463f8efa94090b1f366cccfbbb444\",\"package\":\"prepay_id=up_wx21201855730335ac86f8c43d1889123400\",\"signType\":\"RSA\",\"paySign\":\"oR9d8PuhnIc+YZ8cBHFCwfgpaK9gd7vaRvkYD7rthRAZ\"}"
}{
"code": 0,
"trade_no": "2024072320222180092",
"pay_type": "scan",
"pay_info": "{\"type\":\"wxpay\",\"trade_no\":\"2024072320222180092\",\"api_trade_no\":\"4200002345202407238253501450\",\"buyer\":\"o9uAcc6VlZxhcujpKIqQuWWoDQc\",\"money\":\"1.00\"}"
}{
"code": 0,
"trade_no": "2024072320222180018",
"pay_type": "wxplugin",
"pay_info": "{\"appId\":\"wxc237fd59fbb634ae\",\"supplierId\":\"123456\",\"shopId\":\"123456\",\"orderId\":\"2024072320222180092\"}"
}{
"code": 0,
"trade_no": "2024072320222180018",
"pay_type": "wxapp",
"pay_info": "{\"appId\":\"wxbb48bac536053072\",\"miniProgramId\":\"gh_bf9cd8cf50b5\",\"path\":\"pages/fromAppPay/index?orderid=123456\",\"extraData\":\"\"}"
}接口类型列表
| 调用值 | 描述 |
|---|---|
| web | 通用网页支付(会根据device判断,自动 返回跳转url/二维码/小程序跳转url等) |
| jump | 跳转支付(仅会返回跳转url) |
| jsapi | JSAPI支付(小程序内支付使用,仅返回JSAPI参数, 需传入sub_openid和sub_appid参数) |
| app | APP支付(iOS/安卓APP内支付使用, 仅返回APP支付参数,或APP拉起微信小程序参数) |
| scan | 付款码支付(需传入auth_code参数, 支付成功后返回订单信息) |
| applet | 小程序支付(微信小程序内使用, 返回微信小程序插件参数或跳转小程序参数) |
设备类型列表
| 调用值 | 描述 |
|---|---|
| pc | 电脑浏览器(默认) |
| mobile | 手机浏览器 |
| 手机QQ内浏览器 | |
| 微信内浏览器 | |
| alipay | 支付宝客户端 |
发起支付类型说明
| 发起支付类型 | 描述 |
|---|---|
| jump | 返回支付跳转url |
| html | 返回html代码,用于支付跳转 |
| qrcode | 返回支付二维码 |
| urlscheme | 返回微信/支付宝小程序跳转url scheme |
| jsapi | 返回用于发起JSAPI支付的参数 |
| app | 返回用于发起APP支付的参数 |
| scan | 付款码支付成功,返回支付订单信息 |
| wxplugin | 返回要拉起的微信小程序插件参数, 用于未开通支付能力的小程序发起支付, |
| wxapp | 返回要拉起的微信小程序和路径, 用于APP内拉起微信小程序支付 |
其他说明:
- 代码中需根据接口返回的pay_type值来展示具体的支付页面,例如扫码页面等。如果不懂怎么展示支付页面,可在method传入jump,这样pay_type就只会返回jump,直接跳转支付即可。
- 付款码支付可不传支付类型type字段,会根据auth_code的数字自动判断支付类型。
- 微信小程序插件支付,不同支付平台拉起支付方式不一样,可联系客服获取对接小程序插件的文档。
- APP拉起微信小程序可参考微信官方文档。
