商户扫码收款

此文档适用于在商户扫描用户的微信,支付宝的条码或银联云闪付二维码的支付方式。 主要应用场景是线下餐饮门店,零售商超等。

提示

如果您的销售系统具备条码扫描功能,可以自主研发应用程序以利用该端点功能。

您也可以通过电子邮件 info@iotpay.ca或直接致电+1 (604) 283-3268来了解我们的预编程销售系统。

工作原理

API 请求

端点

https://api.iotpaycloud.com/v1/create_order

方法

POST

头部

Content-Type: application/x-www-form-urlencoded

! 提示

在收到访问凭证(商户 ID、登录名、商户密钥)之后, 您可以按照演示商户扫码收款在新窗口打开进行测试。 这可能在阅读文档时对您有所帮助。

参数说明

字段名变量名必填类型示例值描述
商户IDmchIdString(30)20001222支付中心分配的商户号
商户订单号mchOrderNoString(30)20160427210604000490商户生成的订单号
请保证唯一性
支付通道channelIdStringWX_MICROPAY or
ALIPAY_MICROPAY
仅支持示例中的这两种渠道
币种currencyString(3)CAD三位货币代码,仅支持加币:CAD和美金:USD
支付金额amountint100支付金额,单位分
客户端IPclientIpString(32)210.73.10.148客户端IP地址
设备deviceString(64)V1-B18The type of the scanning device
设备IddeviceIdString(64)V102219391901The ID of the scanning device
支付结果回调URLnotifyUrlString(200)http://xxx.com/notify.php支付结果回调URL,需要传值,但是没有notify
商品主题subjectString(64)测试商品商品主题
商品描述信息bodyString(255)xxpay测试商品描述商品描述信息
条码类型codeTypeString(64)"barcode"Fill in "barcode" here
条码值identityCodeString(64)352645673847987656Personal payment code number
obtained by scanning
附加参数extraString(512){"productId":"100005761557771065",
"pos_flag":"yes"}
子账号jobNoString(50)商户登录名
附言remarksString(200)商户的附言
签名signString(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法

提示

由于兼容性要求,我们要求参数被包装如下:

params={"mchId":"10000576","mchOrderNo":1557771065,"extra":"{\"productId\":\"100005761557771065\",\"pos_flag\":\"yes\"}","channelId":"WX_MICROPAY","currency":"CAD","amount":1,"clientIp":"207.216.193.72","notifyUrl":"http:\/\/localhost\/testTool\/test\/notify.php","subject":"test","body":"payTest","device":"V1-B18","deviceId":"V102174C02773","codeType":"barcode","identityCode":"352645673847987656""sign":"DF1B222C8A482231E485DAA3D1A8F685"}

返回结果

变量名必填类型示例值描述
retCodeStringSUCCESSSUCCESS/FAIL,无论retCoderesCodeFAIL, 订单都视为失败
resCodeStringSUCCESSSUCCESS/FAIL,无论retCoderesCodeFAIL, 订单都视为失败
retMsgStringSignature Failed请求失败理由
payOrderJSONorder detail如果resCoderetCode都为 SUCCESS,payOrder将被返回

payOrder的返回值:

变量名必填类型示例值描述
payOrderIdString'AM20210727205735526962718926'IOT Pay 分配的订单识别码
mchOrderNoString'1627419455'商户生成的订单号
statusInt22或3 代表订单成功

轮询订单状态

注意

即使retCoderesCode返回SUCCESS, 也不能保证用户已经成功支付。

商户需要判断返回的status字段值,如果status=2或3,表示订单成功。 否则的话,需要使用 order query 发起轮询确保订单状态成功。例如,每2秒钟查询订单状态一次,最多查30次。

订单状态列表

状态码简介
0创建成功但未付款
1用户正在付款界面, 如用户正在输入密码
2已支付成功
3已支付成功并且已通知商家
4被系统取消
9被用户取消

提示

轮询订单状态时,仅当状态码为2或3时代表订单成功,若状态码大于3,此订单将再无成功可能,此时可停止轮询。

上次更新: