Transaction QRcode payment
介绍
Transaction QR Code交易会对每笔订单生成一个动态的二维码,用户只需要扫该二维码即可进行支付,不需要输入金额。但是该场景需要用户能正常访问互联网。
流程
participant 用户
商户->scanforpay: 1. 创建订单
scanforpay->支付平台: 2. 创建订单
支付平台->scanforpay: 3. 返回订单信息及订单二维码
scanforpay->商户: 4. 返回订单信息及订单二维码
用户->商户: 5.扫描二维码进行支付
用户->支付平台: 6. 发起支付
支付平台-->用户: 7. 通知支付结果
支付平台-->scanforpay: 7. 通知支付结果
scanforpay-->商户: 8. 通知支付结果
订单创建
请求地址
POST
https://pay.scanforpay.com/api/offline/create
业务请求数据
| 名称 | 参数名 | 数据类型 | 必填 | 说明 | 
|---|---|---|---|---|
| 门店编号 | storeNo | String (15) | Y | 由scanforpay分配 | 
| 商户订单号 | partnerOrderNo | String (32) | Y | 由商户生成 20180802100000001  | 
| 支付钱包 | wallet | String (10) | Y | Wechat: 微信支付 Alipay: 支付宝  | 
| 交易金额 | 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 | 如果填写,则支付成功后会通知到该地址,商户需处理重复通知的情况. 如果不填,则支付成功不会进行通知。  | 
| 二维码过期时间 | it_b_pay | String(10) | N | 指定从用户扫描二维码开始,用户可以完成付款的时间段。时间一到,交易就会自动结束。默认情况下,此字段的值为3m。该字段的值在1m-15d的范围内。 注意: 1、 以下缩写用于表示时间单位: m: 分钟 h: 小时 d: 天 c: 当日(无论何时创建交易,都将在0:00关闭)。 2、 该参数数值的小数点被拒绝,例如1.5h需要转换为90m。 示例:1d  | 
| 二维码过期时间 | qr_code_it_b_pay | String(10) | N | 指定用户从创建二维码起可以完成付款的时间段。时间一到,交易就会自动结束。此字段的值在1m-2h的范围内。如果指定了此参数,则it_b_pay参数将无效。 注意: 1、 以下缩写用于表示时间单位: m: 分钟 h: 小时 2、 该参数数值的小数点被拒绝,例如1.5h需要转换为90m。 示例:1m  | 
请求示例
{
    "request": {
        "header": {
            "requestTime": "2018-07-25T17:53:52+08:00",
            "partnerNo": "10001",
            "signType": "SHA256",
            "version": "1.0",
            "reqMsgId": "615c1195-0cd0-421c-b612-538bf03eabc7"
        },
        "body": {
            "storeNo": "100010000000002",
            "partnerOrderNo": "p20180725175352983070",
            "wallet": "Alipay",
            "orderAmount": 2000,
            "orderTitle": "Consume",
            "operatorId": "211918"
        }
    },
    "signature": "d02a1a795d3878d4cea551f55091bcf9fb05efcfda289e7bc781e2ceefa8a931"
}
响应数据
| 名称 | 数据标识 | 数据类型 | 必填 | 说明 | 
|---|---|---|---|---|
| 响应码 | code | int(5) | Y | 1:成功 其他为交易失败 | 
| 响应信息 | msg | varchar (100) | Y | 响应信息 | 
| 付款二维码 | qrcode | varchar(100) | Y | 二维码内容 | 
| 支付订单号 | orderNo | varchar(32) | Y | 由scanforpay生成 | 
| 商户订单号 | partnerOrderNo | String (32) | Y | 由商户生成 20180802100000001  | 
| 二维码图片(大图) | qrcodeImageL | varchar(200) | Y | 二维码图片大图 | 
| 二维码图片(正常) | qrcodeImageM | varchar(200) | Y | 二维码图片正常大小 | 
| 二维码图片(小图) | qrcodeImageS | varchar(200) | Y | 二维码图片小图 | 
响应示例
成功响应示例
{
    "response": {
        "header": {
            "partnerNo": "10001",
            "respTime": "2018-07-25T17:54:11+08:00",
            "signType": "SHA256",
            "version": "1.0",
            "reqMsgId": "a47ceb57-9c1c-4190-88ec-30ae1e413d89"
        },
        "body": {
            "code": 1,
            "msg": "success",
            "orderNo": "2018072517535241",
            "partnerOrderNo": "p20180725175352983070",
            "qrcode": "https://qr.alipay.com/bax01968y4zlr8n4usrb40b7",
            "qrcodeImageS": "https://mobilecodec.alipay.com/show.htm?code=bax01968y4zlr8n4usrb40b7&picSize=S",
            "qrcodeImageM": "https://mobilecodec.alipay.com/show.htm?code=bax01968y4zlr8n4usrb40b7&picSize=M",
            "qrcodeImageL": "https://mobilecodec.alipay.com/show.htm?code=bax01968y4zlr8n4usrb40b7&picSize=L",
        }
    },
    "signature": "a90a7457b39304645bf6eb18383e60d96c23361d238f319c6b6d5511c7044432"
}
失败响应示例
{
    "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"
}