Barcode payment
介绍
Barcode payment是一种店内线下即时收款的解决方案,商户可以通过扫用户的支付宝/微信付款码来进行收款。Barcode payment的主要优势是用户的支付宝/微信可以离线使用。
流程
participant 用户
商户->用户: 1. 商户扫描用户付款码
商户->ScanForPay: 2. 发起交易请求
ScanForPay->支付平台: 3. 发起请求交易
支付平台-->ScanForPay: 4. 通知结果
ScanForPay-->商户: 5. 通知结果
商家收款接口
请求地址
POST
https://pay.scanforpay.com/api/offline/pay
业务请求数据
名称 | 参数名 | 数据类型 | 必填 | 说明 |
---|---|---|---|---|
门店编号 | storeNo | String (15) | Y | 由scanforpay分配 |
商户订单号 | partnerOrderNo | String (32) | Y | 由商户生成 20180802100000001 |
付款码 | barcode | String (20) | Y | 由扫码工具扫描用户钱包付款码获得 |
交易金额 | orderAmount | int | Y | 交易币种的最小单位 如果商家币种是人民币,则100表示100分=1元;如果商家币种是日元,则100表示日元的 100元 |
交易说明 | orderTitle | String(100) | N | 对交易的说明 |
操作员 | operatorId | String(20) | N | 由商户填写 100001 |
终端编号 | terminalNo | String(20) | N | 由商户填写 100002 |
支付成功通知地址 | notifyUrl | String(200) | N | 如果填写,则支付成功后会通知到该地址,商户需处理重复通知的情况. 如果不填,则支付成功不会进行通知。 |
请求示例
{
"request": {
"header": {
"requestTime": "2018-07-25T18:06:05+08:00",
"partnerNo": "10001",
"signType": "SHA256",
"version": "1.0",
"reqMsgId": "fd03f269-3180-4575-8af0-8f6cf324fb0f"
},
"body": {
"storeNo": "100010000000002",
"partnerOrderNo": "p20180725180605466813",
"barcode": "284447106610060508",
"orderAmount": 2100,
"orderTitle": "Consume",
"operatorId": "211918",
"terminalNo": "123456",
"notifyUrl": "http://192.168.31.72:8080/scanforpay/notify"
}
},
"signature": "2d2d5c66a67a24b5e13705cc38f34d93c395a7d9e0e4ff9425c9ce07b806a1cc"
}
响应数据
名称 | 数据标识 | 数据类型 | 必填 | 说明 |
---|---|---|---|---|
响应码 | code | int(5) | Y | 1:成功 其他为交易失败 |
响应信息 | msg | varchar (100) | Y | 响应信息 |
支付订单号 | orderNo | varchar(32) | Y | 由scanforpay生成 |
商户订单号 | partnerOrderNo | String (32) | Y | 由商户生成 20180802100000001 |
交易金额 | orderAmount | int | Y | 交易币种的最小单位 如果商家币种是人民币,则100表示100分=1元;如果商家币种是日元,则100表示日元的 100元 |
支付钱包 | wallet | String (10) | Y | Wechat: 微信支付 Alipay: 支付宝 |
订单状态 | status | int | Y | 0:待支付 1:支付成功 2:支付失败 3:已退款 |
支付时间 | payTime | String(25) | N | Date time with timezone, see RFC 3339 Section 5.6 for details. 2018-07-25T17:54:00+08:00 |
支付币种 | currency | varchar(5) | Y | JPY |
付款人账号 | buyer | varchar(30) | N | c*@gmail.com |
付款ID | buyerId | varchar(30) | N | 208xxxxxxxxxx012 |
响应示例
成功响应实例
{
"response": {
"header": {
"partnerNo": "10001",
"respTime": "2018-07-25T18:06:12+08:00",
"signType": "SHA256",
"version": "1.0",
"reqMsgId": "213ca19e-c75f-450d-9acf-46e860570bb9"
},
"body": {
"code": 1,
"msg": "success",
"orderNo": "2018072518060757",
"partnerOrderNo": "p20180725180605466813",
"payTime": "2018-07-25T18:06:12+08:00",
"wallet": "Alipay",
"currency": "JPY",
"status": 1,
"buyer":"cd****@qq.com",
"buyerId":"208xxxxxxxxxx012"
}
},
"signature": "0710b2630b467c14b3d54295def7f89be61097c21472547823b43c58f3466b08"
}
失败响应实例
{
"response": {
"header": {
"partnerNo": "10001",
"respTime": "2018-07-25T17:37:14+08:00",
"signType": "SHA256",
"version": "1.0",
"reqMsgId": "c11fe1c7-069b-4399-be00-31830a5de63d"
},
"body": {
"code": 30
"msg": "订单不存在",
}
},
"signature": "5719065ecea463366cbf39b728b9b8cba940365c0c053dd96effde57f7edc1f8"
}