统一下单接口
此接口可用于服务器后端发起支付请求,会返回支付二维码链接、支付跳转url等。
请求信息
| 请求URL |
/api/pay/create |
| 请求方式 |
POST |
请求参数
| 参数名 |
类型 |
必填 |
示例值 |
说明 |
| pid |
Int |
是 |
1001 |
商户ID |
| 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位小数 |
| clientip |
String |
是 |
192.168.1.100 |
用户发起支付的IP地址 |
| param |
String |
否 |
没有请留空 |
业务扩展参数,支付后原样返回 |
| auth_code |
String |
否 |
|
被扫支付授权码,仅被扫支付需要传 |
| sub_openid |
String |
否 |
|
用户Openid,仅JSAPI支付需要传 |
| sub_appid |
String |
否 |
|
公众号AppId,仅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"
}
JSAPI支付返回示例:
{
"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\"}"
}
APP拉起小程序支付返回示例:
{
"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 |
手机QQ内浏览器 |
| wechat |
微信内浏览器 |
| 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拉起微信小程序可参考微信官方文档。