接口地址:https://LIVIPAY服务网址/createOrder (在后台应用配置页面查看)
调用方法:POST (注意 content-type 设置为 application/x-www-form-urlencoded 哦)
调用参数:
- name, 必填, 订单销售商品名称
- pay_type, 必填, 支付方式(可选alipay/wechat)
- price, 必填, 订单价格
- order_id, 必填, 订单号
- order_uid, 必填, 订单购买用户(可以为空字符串,但是建议设置为购买用户编号,便于后续对账)
- notify_url, 必填, 支付成功后回调地址
- return_url, 必填, 支付成功后前台跳转地址(可以为空字符串)
- feedback_url, 选填, 用户支付后未到账(可能超时付款),支付页面显示的反馈按钮链接(可以为空字符串)
- sign, 必填, 将参数按
name + pay_type + price + order_id + order_uid + notify_url + return_url + feedback_url + app secret
顺序拼接后MD5(纯 value 拼接,不要包含 + 号)
注意:如果你希望使用 LIVIPAY 的支付页面,那么你的后台构造签名等参数后返回给用户浏览器,在浏览器提交 form 到 LIVIPAY,就会显示支付页面;
如果要自定义支付页面,那么就在 api 后面加参数 format=json 你后台请求这个接口返回结果就是 json 格式的,需要你自己展示付款二维码。注意:如果 api 后面加参数 round_robin=true 那么轮询使用各个手机收款(排除超过限额和权重为0的)。注意:如果 api 后面加参数 expire=秒数 可以自定义订单过期秒数,默认是 300 秒。注意:如果 api 后面加参数 price_type=floor 只会用价格小于请求价格的二维码;加参数 price_type=ceil 只会用价格大于请求价格的二维码。注意:如果 api 后面加参数 price_gap=0.1 价格备选范围就是 支付价格 ±0.1 内(默认为 0.1)。注意:如果 api 后面加参数 no_int=true 则不会使用整数金额二维码。注意:如果 api 后面加参数 user_cache=true 那么创建订单时如果 同一个用户(order_uid)存在相同金额(price)、相同支付渠道(pay_type)且未过期的订单,
那么继续使用这个订单(这样不会产生很多订单、可以提高成功率、用户多次点击付款订单金额不会变化)
json 格式接口返回:
{
"status": "ok",
"aoid": "cad5076f55834f5fadddcfc018cc4068",
"pay_type": "wechat",
"price": "35.00",
"qr_price": "",
"qr": "wxp://f2f0-vFHHDCw3L4kPne1JzXyQ0nO0QKpQK2e"
"qr_img": "data:image/jpeg;base64,/9j/4AAQSk......Bxiv/2Q==",
"cid": 1,
"expires_in": 270,
"return_url": "http://LIVIPAY服务网址/livibankpay/return.php",
"feedback_url": "http://LIVIPAY服务网址/feedback",
}
- status, 付款请求结果(只有为 ok 的时候才有其他的值)
- aoid, budpay平台订单唯一标示可用于查询订单状态
- pay_type, 支付类型 alipay/wechat
- price, 订单价格
- qr_price, 实际支付二维码的金额,如果为空表示使用的是不固定金额二维码,具体金额需要用户输入,需要显示让用户输入 price 的数值
- qr, 支付二维码内容
- qr_img, 支付二维码图片 base64 格式
- cid, 该订单分配到的手机编号
- expires_in, 支付二维码剩余有效秒数
- return_url, 支付成功跳转地址
- feedback_url, 用户支付后未到账(可能超时付款),支付页面显示的反馈按钮链接
错误代码:
- {"status": "sign_error"}, 签名错误
- {"status": "order_payed"}, 订单已支付
- {"status": "order_expire"}, 订单已过期
- {"status": "free_limit"}, 免费版达到每日订单限制
- {"status": "fee_error"}, 余额不足
- {"status": "qr_limit"}, 无可用二维码,可能是达到你设置的收款额度上限 或 没有可用于这个订单金额的二维码,
你可以多传一些这个价格附近的固定金额或上传一个不固定金额二维码
- {"status": "missing_argument", "info": "xxxxx"}, 缺少 xxxx 参数