小程序支付
产品介绍
小程序支付和APP支付的支付流程与体验基本一致,小程序支付也支持核销口碑券和口碑商户优惠功能。已签约小程序支付或在口碑开店的商户建议接入小程序支付。小程序支付在小程序内不能通过扫码、条码、声波付等方式支付,只能唤起收银台进行支付。
产品流程
- 用户在小程序中选择商品下单并确认购买,进入支付环节,用户点击确认支付;
进入到支付宝页面后,小程序唤起支付宝支付,出现支付界面;
用户确认收款方和金额,点击“立即付款”后进行支付;
输入正确支付密码后,显示支付成功页;
点击支付成功页右上角“完成”,跳转到自定义页面,开发者可根据付款结果个性化展示订单处理结果。
准入条件
该产品使用者需要签约,条件详见下方“签约要求”。
计费模式
费率按单笔计算。一般行业费率:0.6%;特殊行业费率:1.2%,特殊行业范围包括:手机、通讯设备销售;家用电器;数码产品及配件;休闲游戏;网络游戏点卡、渠道代理;游戏系统商;网游周边服务、交易平台;网游运营商(含网页游戏)。
接入介绍
添加小程序支付
开发者在小程序详情页的功能列表中添加“小程序支付”功能。
签约小程序支付
小程序支付需要签约才能生效,请点击功能列表右侧“立即签约”,签约成功后,状态置为“已生效”,即可调用小程序支付。
签约要求
- 申请前必须拥有经过实名认证的支付宝账户;
- 企业或个体工商户可申请;
- 需提供真实有效的营业执照,且支付宝账户名称需与营业执照主体一致;
- 网站能正常访问且页面显示完整,网站需要明确经营内容且有完整的商品信息;
- 网站必须通过 ICP 备案。如为个体工商户,网站备案主体需要与支付宝账户主体名称一致;如为个体工商户,则团购不开放,且古玩、珠宝等奢侈品、投资类行业无法申请本产品。
接入小程序支付
小程序支付调用流程如下图所示:
主要步骤
前提:请先了解小程序框架、支付宝开放平台服务端SDK。
- 在小程序端调用 httpRequest 接口,连接到商户服务端。
my.httpRequest({
url: '商户服务端地址',//须加httpRequest域白名单
method: 'POST',
data: {//data里的key、value是开发者自定义的
from: '支付宝',
order: 'XXXXX',//订单信息
},
dataType: 'json',
success: function(res) {
my.alert({content: 'success'});
},
fail: function(res) {
my.alert({content: 'fail'});
},
complete: function(res) {
my.hideLoading();
my.alert({content: 'complete'});
}
});
- 在服务端调用 alipay.trade.create (统一收单交易创建接口),获得支付宝交易号 tradeNO(以 Java 代码为例)。
//实例化客户端
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.create.
AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数。
request.setBizContent("{" +
"\"out_trade_no\":\"20171115010101001\"," +
"\"total_amount\":0.01," +
"\"subject\":\"Iphone616G\"," +
"\"buyer_id\":\"用户pid\"" +
"}");
try {
//使用的是execute
AlipayTradeCreateResponse response = alipayClient.execute(request);
String trade_no = response.getTradeNo();//获取返回的tradeNO。
} catch (AlipayApiException e) {
e.printStackTrace();
}
注意:在小程序场景内 alipay.trade.create 接口中的“buyer_id”为必填项,若未传入调式时会出现报错。推荐使用开放平台提供的服务端 SDK,并参考代码示例编写;点击下载服务端 SDK。具体业务参数请参考统一收单交易创建接口。
- 在小程序端使用 tradeNO,调用 my.tradePay 接口唤起支付收银台。
my.tradePay({
tradeNO: '2017111521001104105336677922',
success: function(res) {
my.alert(res.resultCode);
},
fail: function(res) {
my.alert(res.resultCode);
},
});
API 介绍
接口名称 | 接口中文名称 |
---|---|
alipay.trade.create | 统一收单交易创建接口 |
my.tradePay | 小程序唤起支付 |
my.httpRequest | 向指定服务器发起一个跨域 http 请求 |
补充说明
- 服务端接口调用,请查看服务端 SDK
- 服务端支付API,比如撤销、退款、关闭等,查看支付 OpenAPI
- 签名逻辑
- 请求参数及同步通知参数说明
- 服务器异步通知参数说明
- 交易辅助接口
- 对账说明