条码支付
说明
- 扫码设备读取到用户支付条码,判断是支付宝条码还是微信条码,设置不同的 pay_type
- 微信条码为18位纯数字,以10、11、12、13、14、15开头,支付宝是 28 开头
- 调用方法为 POST, content-type 为 application/x-www-form-urlencoded
接口地址
https://xorpay.com/api/barcode_pay/aid 其中 aid 为用户 appid,请在 XorPay 后台 查看后替换
接口参数
名称 | 类型 | 必须 | 说明 |
---|---|---|---|
name | string | 是 | 商品名称 |
pay_type | string | 是 | wechat_barcode 或 alipay_barcode |
price | string | 是 | 价格如: 50.00 |
order_id | string | 是 | 你平台订单号,需要唯一 |
order_uid | string | 否 | 订单用户如: [email protected] |
notify_url | string | 是 | 回调地址 |
barcode | string | 是 | 支付条码 |
more | string | 否 | 订单其他信息,回调时原样传回 |
sign | string | 是 | 将参数按 name + pay_type + price + order_id + notify_url + barcode + app secret 顺序拼接后MD5(纯 value 拼接,不要包含 + 号) |
POST body 举例:
pay_type=wechat_barcode&name=XorPay+ %E8%B4%A6%E6%88%B7%E5%85%85%E5%80%BC&order_uid=a%40b.com&order_id=14&price=0.01&sign=23f 486d9bb15x6b11f753547558626d7¬ify_url=http%3A%2F%2Fexample.com%3A3094%2Fpay_callback&barcode=abcdefghi
返回参数
返回为 json 格式
名称 | 类型 | 必有 | 说明 |
---|---|---|---|
status | string | 是 | missing_argument 缺少参数app_off 账号被冻结aid_not_exist aid不存在pay_type_error 支付类型错误sign_error 签名错误order_payed 订单已支付order_expire 订单过期wechat_api_error 可能账号被风控fee_error 余额不足order_exist 同一订单,参数不同new 等待回调通知 success 支付成功 除开以上状态,其他状态都需要用户刷新条码重新创建订单支付 |
aoid | string | 否 | XorPay 平台统一订单号,status 为 new 和 success 才有 |
detail | dict | 否 | 支付信息详情,status 为 success 才有 |
举例:
支付成功,同步立即返回结果(用户开了小额免密支付,不用用户确认)
{u'status': u'success', u'detail': u'{"bank_type": "ALIPAYACCOUNT", "buyer": "[email protected]", "transaction_id": "2019101622000000000000000000"}', u'aoid': u'bbbbbbbbbbbbbbbbbbbxxxxxxxxxxxxxx}
请求成功,等待用户支付(等待用户输入密码等),用户支付后会异步回调通知
{u'status': u'new', u'aoid': u'bbbbbbbbbbbbbbbbbbbxxxxxxxxxxxxxx'}
支付失败,需要重新扫用户条码创建订单
{u'status': u'AUTH_CODE_INVALID'}
判断支付成功
- 可以等 xorpay 的回调通知
- 或者可以用 订单查询接口 查询订单状态