IOTPay 技术接入文档IOTPay 技术接入文档
  • 介绍
  • 签名
  • 统一下单
  • 商户扫码收款
  • 顾客扫描二维码
  • 微信JSAPI支付集成(mobile web)
  • 微信JSAPI支付集成(微信小程序)
  • 线上安全支付
  • 商户App集成IOTPay
  • 查询订单接口
  • 异步支付结果通知
  • 获取clientIP
  • 退款接口
  • 退款查询接口
  • POS 半集成
  • WordPress WooCommerce 插件
  • V3

    • 介绍
    • 重定向集成
    • 重定向集成(支持3DS与AVS)
    • 嵌入式集成
    • 直接支付
    • 查询卡信息
    • 使用令牌进行购买
    • 数字钱包支付
    • 撤销交易
    • 退款交易
    • 查询交易
    • 银联 ExpressPay API
  • V2

    • Credit Card API V2(不建议使用,请对接V3版本)
  • 介绍
  • 签约
  • 支付
  • 查询订单接口
  • 回调
  • English
  • 简体中文
  • 介绍
  • 签名
  • 统一下单
  • 商户扫码收款
  • 顾客扫描二维码
  • 微信JSAPI支付集成(mobile web)
  • 微信JSAPI支付集成(微信小程序)
  • 线上安全支付
  • 商户App集成IOTPay
  • 查询订单接口
  • 异步支付结果通知
  • 获取clientIP
  • 退款接口
  • 退款查询接口
  • POS 半集成
  • WordPress WooCommerce 插件
  • V3

    • 介绍
    • 重定向集成
    • 重定向集成(支持3DS与AVS)
    • 嵌入式集成
    • 直接支付
    • 查询卡信息
    • 使用令牌进行购买
    • 数字钱包支付
    • 撤销交易
    • 退款交易
    • 查询交易
    • 银联 ExpressPay API
  • V2

    • Credit Card API V2(不建议使用,请对接V3版本)
  • 介绍
  • 签约
  • 支付
  • 查询订单接口
  • 回调
  • English
  • 简体中文
  • 指南

    • 介绍
    • 签名
    • 统一下单
    • 商户扫码收款
    • 顾客扫描二维码
    • 微信JSAPI支付集成(mobile web)
    • 微信JSAPI支付集成(微信小程序)
    • 线上安全支付
    • 商户App集成IOTPay
    • 查询订单接口
    • 异步支付结果通知
    • 获取clientIP
    • 退款接口
    • 退款查询接口
    • POS 半集成
    • WordPress WooCommerce 插件
  • 信用卡

    • V3

      • 介绍
      • 重定向集成
      • 重定向集成(支持3DS与AVS)
      • 嵌入式集成
      • 直接支付
      • 查询卡信息
      • 使用令牌进行购买
      • 数字钱包支付
      • 撤销交易
      • 退款交易
      • 查询交易
      • 银联 ExpressPay API
    • Credit Card API V2(不建议使用,请对接V3版本)
  • 代扣

    • 介绍
    • 签约
    • 支付
    • 查询订单接口
    • 回调

商户App集成IOTPay

基本流程

在App集成场景下,有4个参与的系统:

1, 商家的App
2, 商家的后台系统
3, IOTPay的API服务
4, 微信支付/支付宝/银联的服务

对于商户APP,商户发送支付请求到支付中心后,支付中心向商户返回加密数据且不向三方支付发送消息。商户利用接收到的加密数据调用三方支付的SDK,向三方支付发起支付请求。当支付中心收到三方支付 的支付消息后,支付中心通知商户支付结果。

An image

商家App调用商家后台API

该API由商家自行定义,可参考的基本例子如下:

服务地址: https://merchant_server/pay?channelid=XXX&amount=xxx

  • 请求方式: GET

商家后台收到App调用后,向IOTPay发起下单。

App支付需指定ChannelId如下:

渠道ID渠道名称
WX_APP商户APP微信支付
ALIPAY_MOBILE商户APP支付宝支付
UPI_APP银联SecurePay

商家后台调用统一下单接口

请求URL

服务地址: https://api.iotpaycloud.com/v1/create_order

请求方式:

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

An image

参数说明

字段名变量名必填类型示例值描述
商户IDmchId是String(30)10000701支付中心分配的商户号
商户订单号mchOrderNo是String(30)20160427210604000490商户生成的订单号,请保证唯一性
渠道IDchannelId是String(24)ALIPAY_MOBILE见支付渠道参数
币种currency是String(3)CAD三位货币代码,仅支持加币:CAD和美金:USD
支付金额amount是int100支付金额,单位分
客户端IPclientIp是String(32)210.73.10.148客户端IP地址
设备device否String(64)WEB终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"
支付结果回调URLnotifyUrl是String(200)http://xxx.com/notify.php支付结果回调URL
商品主题subject是String(64)测试商品商品主题
商品描述信息body是String(255)xxpay测试商品描述商品描述信息
扩展参数1param1否String(64)支付中心回调时会原样返回
扩展参数2param2否String(64)支付中心回调时会原样返回
附加参数extra是String(512){"type":"apppay","appId":"xxxxxxxxx"}appId从微信开放平台获取
子账号jobNo是String(50)商户登录名
附言remarks否String(200)商户的附言
签名sign是String(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法

微信App支付(WX_APP)

提示

您可以在微信开放平台注册一个账号并登记您的应用程序来获得您的appId。

字段名变量名必填类型示例值描述
附加参数extra是JSON{"type":"apppay","appId":"xxxxxxxxx"}

支付宝App支付(ALIPAY_MOBILE) 或者 UPI_APP(银联SecurePay)

字段名变量名必填类型示例值描述
附加参数extra否JSON该参数不用传

php代码示例


require_once('Utility.php');

$url = 'http://api.iotpaycloud.com/v1/create_order';
$merchantId  = '1000####';
$merchantKey = '##############################';

$channelId  = $_REQUEST['channelid'];
$orderAmount = $_REQUEST['amount'];

$orderNo = $_SERVER['REQUEST_TIME'];

$Utility = new Utility();
$ip = $Utility->real_ip();
$notifyUrl = 'https://develop.iotpay.ca/demo/order/notify.php';
$subject = 'test';
$body = 'payTest';

$extra = '';
if($channelId =='WX_APP')
{
  $appId  = 'wxxxxxxxxxxxxxx';
  $type = 'apppay';
  $extra = json_encode(array(
    'type' => $type,
    'appId' => $appId,
  ));
}

$arr = array(
    'mchId' => $merchantId,
    'mchOrderNo' => $orderNo,
    'extra' => $extra,
    'channelId' => $channelId,
    'currency' => 'CAD',
    'amount' => intval($orderAmount * 100),
    'clientIp' => $ip,
    'device' => 'WEB',
    'notifyUrl' => $notifyUrl,
    'subject' => $subject,
    'body' => $body,

);

$sortArray = $Utility->arg_sort($arr);

$arr['sign'] = $Utility->build_mysign($sortArray, $merchantKey, "MD5");//Generate signature parameter sign

$param = 'params=' . json_encode($arr);

$resBody = $Utility->request($url, $param);//Submit to the gateway

$res = json_decode($resBody, true);
echo json_encode($res['payParams']); //client app use payParams to call sdk

微信/支付宝的SDK和文档:

  • 支付宝SDK文档
  • 支付宝官方实例代码
  • 微信支付SDK文档
  • 微信官方实例代码
  • 银联SecurePay SDK for IOS
  • 银联SecurePay SDK for Android

Demo源码

源码下载 下载

上次更新: 2024/7/19 14:59
Prev
线上安全支付
Next
查询订单接口