跳转支付¶
托管小程序支付¶
微信小程序预下单接口¶
接口版本: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"
}