跳转支付

托管小程序支付

微信小程序预下单接口

接口版本:v1

请求方法:POST

功能号:wxpay.createOrder

通过该接口,商户可以通过在汇付内部开通的微信托管小程序进行预下单。Adapay 会发送 异步消息通知 告知支付终态结果,请以异步通知结果为准。

注:该功能存在权限限制,若需要,请联系销售开通权限。

请求参数

参数

类型

必填

描述

adapay_func_code

String

Y

Adapay接口功能号,该接口填固定值:wxpay.createOrder

order_no

String(64)

Y

请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一

app_id

String(64)

Y

商户在汇付开通小程序的app_id

pay_channel

String(20)

N

支付渠道: wx_lite-小程序支付,为空时,默认为wx_lite。

pay_amt

String(14)

Y

交易金额,必须大于0,保留两位小数点,如0.10、100.05等

goods_title

String(64)

Y

商品标题

goods_desc

String(127)

Y

商品描述信息

pay_mode

String(20)

N

支付模式,delay- 延时分账模式;值为空时,表示实时分账;值为 delay 时,div_members 字段必须为空

div_members

List

N

分账对象信息列表,一次请求最多仅支持7个分账方。json对象 形式,详见 分账对象信息列表

currency

String(3)

N

3位 ISO 货币代码,小写字母,默认为人民币:cny,详见 货币代码

time_expire

String(20)

N

订单失效时间,输入格式:yyyyMMddHHmmss,默认失效时间2小时;最短1分钟,最长不超过1天

description

String(128)

N

订单附加说明

notify_url

String(250)

N

异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数

callback_url

String(250)

N

商户前端页面地址,支付成功或失败时,会向该地址跳转

fee_mode

String(1)

N

手续费收取模式:O-商户手续费账户扣取手续费,I-交易金额中扣取手续费;值为空时,默认值为I;若为O时,分账对象列表中不支持传入手续费承担方

limit_pay

String(1)

N

值为1时禁止使用信用卡支付

响应

参数

类型

必填

说明

object

String(20)

Y

小程序支付对象,checkout

prod_mode

String(4)

Y

是否prod模式,true是prod模式,false是mock模式

app_id

String(64)

Y

商户在汇付开通小程序的app_id

order_no

String(64)

N

创建收银台对象时上送的请求订单号,只能为英文、数字或者下划线的一种或多种组合

has_more

boolean

Y

是否还有更多,true-是,false-否

checkouts

List

N

收银台对象_ 列表

status

String(16)

Y

当前交易状态,参见 状态 说明

error_code

String(32)

N

错误码,详见 错误

error_msg

String(128)

N

错误描述,详见 错误

error_type

String(32)

N

错误类型,详见 错误

invalid_param

String(32)

N

当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误

notify_url

String(250)

N

异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数

expend

Map

N

下单成功后返回的扩展参数

expend字段说明:

参数

类型

必填

描述

wx_h5_pay_url

String(256)

N

跳转小程序支付的链接,h5支付拉起时需通过此url内的hash值调用查询接口,返回g_id、pre_order_id、open_id字段。

g_id

String(64)

N

小程序原始ID,当pay_channel=wx_lite时返回

pre_order_id

String(64)

N

adapay预下单订单号,当pay_channel=wx_lite时返回

path

String(256)

N

小程序支付页面路径,当pay_channel=wx_lite时返回

scheme_code

String(32)

N

小程序scheme码,当pay_channel=wx_lite时返回

调用示例

Java

Map<String, Object> params = new HashMap<String, Object>();
params.put("order_no",  "host_wx_lite_params_sdk_123456789");
params.put("adapay_func_code", "wxpay.createOrder");
params.put("pay_amt", "0.02");
params.put("app_id", "app_XXXXXXXX");
params.put("currency",  "cny");
params.put("goods_title",  "Your goods_title");
params.put("goods_desc",  "Your goods_desc");
params.put("description",  "payment Discription");
params.put("callback_url",  "http://localhost:8080/");
params.put("div_members",  [{"amount":"0.01","fee_flag":"Y","member_id":"iris1234_14151"},{"amount":"0.01","fee_flag":"N","member_id":"0"}]);
Map<String, Object> response = AdapayCommon.requestAdapayUits(params);

成功响应

{
    "app_id": "app_07a68352-f633-45f6-96ea-xxxxx",
    "created_time": "1617963336",
    "currency": "cny",
    "description": "xxxxx",
    "expend": {
        "g_id": "gh_2e15eb4bbe75",
        "path": "/pages/autopay/autopay",
        "pre_order_id": "002112021040918153510226538802599817216",
        "pre_req_id": "CfzZrRGWpj",
        "scheme_code": "weixin://dl/business/?t=fgYBFUAymQb",
        "wx_app_id": "wx602bd30c49cc0657",
        "wx_h5_pay_url": "https://xxxx.tcloudbaseapp.com/h5pay.html?h=CfzZrRGWpj"
    },
    "goods_desc": "商品描述",
    "goods_title": "商品标题",
    "notify_url": "xxxx",
    "object": "checkout",
    "order_no": "checkoutParams_sdk_123456789",
    "pay_amt": "0.01",
    "pay_channel": "wx_lite",
    "prod_mode": "true",
    "time_expire": "20210409201534"
}

使用方法

前提条件

在微信开放平台上有账号而且有通过的移动应用。

在微信公众平台有账号而且有小程序,开发阶段可以使用体验版本,最终上线,小程序需上线审核通过。

在微信开放平台把对应的移动应用和小程序建立关联。

步骤一:下载微信SDK 并参考 微信官方说明 接入SDK

步骤二:app或H5的服务器端调用微信小程序预下单接口

步骤三:使用预下单返回的expend

Android APP跳转到微信小程序的示例:

String appId = "wxd930ea5d5a258f4f"; // 填移动应用(App)的 AppId,非小程序的 AppID
IWXAPI api = WXAPIFactory.createWXAPI(context, appId);
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = "gh_d43f693ca31f"; // 填expend.g_id
req.path = path;  //填expend.path
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;
api.sendReq(req);

支付宝小程序预下单接口

接口版本:v1

请求方法:POST

功能号:prePay.preOrder

通过该接口,商户可以通过在Adapay提供的支付宝小程序进行预下单,可以满足客户使用APP/H5拉起支付宝支付的需求。 Adapay 会发送 异步消息通知 告知支付终态结果,请以异步通知结果为准。

注:该功能存在权限限制,若需要,请联系销售开通权限。

请求参数

参数

类型

必填

描述

adapay_func_code

String

Y

Adapay接口功能号,该接口填固定值:prePay.preOrder

order_no

String(64)

Y

请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一

app_id

String(64)

Y

商户在汇付开通小程序的app_id

pay_channel

String(20)

Y

支付渠道:alipay_lite-支付宝小程序。

pay_amt

String(14)

Y

交易金额,必须大于0,保留两位小数点,如0.10、100.05等

goods_title

String(64)

Y

商品标题

goods_desc

String(127)

Y

商品描述信息

pay_mode

String(20)

N

支付模式,delay- 延时分账模式;值为空时,表示实时分账;值为 delay 时,div_members 字段必须为空

div_members

List

N

分账对象信息列表,一次请求最多仅支持7个分账方。json对象 形式,详见 分账对象信息列表

currency

String(3)

N

3位 ISO 货币代码,小写字母,默认为人民币:cny,详见 货币代码

time_expire

String(20)

N

订单失效时间,输入格式:yyyyMMddHHmmss,默认失效时间2小时;最短1分钟,最长不超过1天

description

String(128)

N

订单附加说明

notify_url

String(250)

N

异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数

callback_url

String(250)

N

商户前端页面地址,支付成功或失败时,会向该地址跳转

app_schema

String(250)

N

小程序完成支付后需要返回app所填写的appSchema,需返回app的时候必填

fee_mode

String(1)

N

手续费收取模式:O-商户手续费账户扣取手续费,I-交易金额中扣取手续费;值为空时,默认值为I;若为O时,分账对象列表中不支持传入手续费承担方

limit_pay

String(1)

N

值为1时禁止使用信用卡支付

响应

参数

类型

必填

说明

object

String(20)

Y

小程序支付对象,checkout

prod_mode

String(4)

Y

是否prod模式,true是prod模式,false是mock模式

app_id

String(64)

Y

商户在汇付开通小程序的app_id

order_no

String(64)

N

创建收银台对象时上送的请求订单号,只能为英文、数字或者下划线的一种或多种组合

status

String(16)

Y

当前交易状态,参见 状态 说明

error_code

String(32)

N

错误码,详见 错误

error_msg

String(128)

N

错误描述,详见 错误

error_type

String(32)

N

错误类型,详见 错误

invalid_param

String(32)

N

当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误

notify_url

String(250)

N

异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数

expend

Map

N

下单成功后返回的扩展参数

支付宝的expend字段说明:

参数

类型

必填

描述

jump_id

String(256)

N

app跳转小程序支付的链接,

target_app_id

String(64)

N

小程序原始ID,当pay_channel=wx_lite时返回

pre_order_id

String(64)

N

adapay预下单订单号,当pay_channel=wx_lite时返回

ali_h5_pay_url

String(64)

N

h5跳转小程序支付的链接

调用示例

Java

Map<String, Object> params = new HashMap<String, Object>();
params.put("order_no",  "host_ali_lite_params_sdk_123456789");
params.put("adapay_func_code", "prePay.preOrder");
params.put("pay_amt", "0.02");
params.put("app_id", "app_XXXXXXXX");
params.put("pay_channel", "alipay_lite");
params.put("currency",  "cny");
params.put("goods_title",  "Your goods_title");
params.put("goods_desc",  "Your goods_desc");
params.put("description",  "payment Discription");
params.put("callback_url",  "http://localhost:8080/");
params.put("div_members",  [{"amount":"0.01","fee_flag":"Y","member_id":"iris1234_14151"},{"amount":"0.01","fee_flag":"N","member_id":"0"}]);
Map<String, Object> response = AdapayCommon.requestAdapayUits(params);

成功响应

{
    "app_id": "app_07a68352-f633-45f6-96ea-xxxxx",
    "created_time": "1617963336",
    "currency": "cny",
    "description": "xxxxx",
    "expend": {
        "ali_h5_pay_url": "alipays://platformapi/startapp?appId=2019083166711738&page=pages/payinfo/index%3Fp%3D0oxoeS4WIu%26a%3D0.01%3Fs%3Dh5",
        "jump_id": "alipays://platformapi/startapp?appId=2019083166711738&page=pages/payinfo/index%3Fp%3D0oxoeS4WIu%26a%3D0.01%3Fs%3Dapp",
        "pre_order_id": "002112021071215431710260564933814132736",
        "pre_req_id": "0oxoeS4WIu",
        "target_app_id": "2019083166711738"
    },
    "goods_desc": "商品描述",
    "goods_title": "商品标题",
    "notify_url": "xxxx",
    "object": "checkout",
    "order_no": "checkoutParams_sdk_123456789",
    "pay_amt": "0.01",
    "pay_channel": "wx_lite",
    "prod_mode": "true",
    "time_expire": "20210409201534"
}

使用方法

此种方式的主要原理是:通过拉起支付宝APP,然后跳转到对应支付宝小程序中,在小程序内处理业务逻辑,下单,然后调用支付宝js API 发起支付。

步骤一:app或H5的服务器端调用支付宝小程序预下单接口

步骤二:app拉起支付宝小程序使用预下单返回的jump_id,H5使用预下单返回的ali_h5_pay_url,H5的使用方式如下:

h5跳转到支付宝小程序的示例:

window.location.href=ali_h5_pay_url;

动态二维码支付

动态二维码预下单接口

接口版本:v1

请求方法:POST

功能号:qrPrePay.qrPreOrder

通过该接口,商户可以通过在Adapay提供的动态二维码进行预下单,可以满足客户使用动态二维码支付的需求。 Adapay 会发送 异步消息通知 告知支付终态结果,请以异步通知结果为准。

注:该功能存在权限限制,若需要,请联系销售开通权限。

请求参数

参数

类型

必填

描述

adapay_func_code

String

Y

Adapay接口功能号,该接口填固定值:qrPrePay.qrPreOrder

order_no

String(64)

Y

请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一

app_id

String(64)

Y

商户在汇付开通小程序的app_id

pay_amt

String(14)

Y

交易金额,必须大于0,保留两位小数点,如0.10、100.05等

goods_title

String(64)

Y

商品标题

goods_desc

String(127)

Y

商品描述信息

pay_mode

String(20)

N

支付模式,delay- 延时分账模式;值为空时,表示实时分账;值为 delay 时,div_members 字段必须为空

div_members

List

N

分账对象信息列表,一次请求最多仅支持7个分账方。json对象 形式,详见 分账对象信息列表

currency

String(3)

N

3位 ISO 货币代码,小写字母,默认为人民币:cny,详见 货币代码

time_expire

String(20)

N

订单失效时间,输入格式:yyyyMMddHHmmss,默认失效时间2小时;最短1分钟,最长不超过1天

description

String(128)

N

订单附加说明

notify_url

String(250)

N

异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数

fee_mode

String(1)

N

手续费收取模式:O-商户手续费账户扣取手续费,I-交易金额中扣取手续费;值为空时,默认值为I;若为O时,分账对象列表中不支持传入手续费承担方

limit_pay

String(1)

N

值为1时禁止使用信用卡支付

响应

参数

类型

必填

说明

object

String(20)

Y

小程序支付对象,checkout

prod_mode

String(4)

Y

是否prod模式,true是prod模式,false是mock模式

app_id

String(64)

Y

商户在汇付开通小程序的app_id

order_no

String(64)

N

创建收银台对象时上送的请求订单号,只能为英文、数字或者下划线的一种或多种组合

status

String(16)

Y

当前交易状态,参见 状态 说明

error_code

String(32)

N

错误码,详见 错误

error_msg

String(128)

N

错误描述,详见 错误

error_type

String(32)

N

错误类型,详见 错误

invalid_param

String(32)

N

当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误

notify_url

String(250)

N

异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数

expend

Map

N

下单成功后返回的扩展参数

expend字段说明:

参数

类型

必填

描述

pre_order_id

String(64)

N

adapay预下单订单号

qr_pay_url

String(64)

N

二维码支付链接

调用示例

Java

Map<String, Object> params = new HashMap<String, Object>();
params.put("order_no",  "host_ali_lite_params_sdk_123456789");
params.put("adapay_func_code", "qrPrePay.qrPreOrder");
params.put("pay_amt", "0.02");
params.put("app_id", "app_XXXXXXXX");
params.put("currency",  "cny");
params.put("goods_title",  "Your goods_title");
params.put("goods_desc",  "Your goods_desc");
params.put("description",  "payment Discription");
params.put("div_members",  [{"amount":"0.01","fee_flag":"Y","member_id":"iris1234_14151"},{"amount":"0.01","fee_flag":"N","member_id":"0"}]);
Map<String, Object> response = AdapayCommon.requestAdapayUits(params);

成功响应

{
    "app_id": "app_07a68352-f633-45f6-96ea-xxxxx",
    "created_time": "1617963336",
    "currency": "cny",
    "description": "xxxxx",
    "expend": {
        "qr_pay_url": "https://page-test.adapay.tech/qr/xxxx?suffix=xxx&hash=fFqbgfgX8l&amt=0.01&type=1",
        "pre_order_id": "002112021071215431710260564933814132736",
        "pre_req_id": "0oxoeS4WIu"
    },
    "goods_desc": "商品描述",
    "goods_title": "商品标题",
    "notify_url": "xxxx",
    "object": "checkout",
    "order_no": "checkoutParams_sdk_123456789",
    "pay_amt": "0.01",
    "prod_mode": "true",
    "time_expire": "20210409201534"
}