• 下载
  • 社区

小程序支付

产品介绍

产品概述

小程序支付和 APP 支付的支付流程与体验基本一致,小程序支付也支持核销口碑券和口碑商户优惠功能。已签约小程序支付或在口碑开店的商户建议接入小程序支付。
小程序支付在小程序内不能通过扫码、条码、声波付等方式支付,只能唤起收银台进行支付。

使用流程

1.用户在小程序中选择商品下单并确认购买,进入支付环节,用户点击确认支付;
2.进入到支付宝页面后,小程序唤起支付宝支付,出现支付界面;
image.png

3.用户确认收款方和金额,点击 立即付款 后进行支付;
4.输入正确支付密码后,显示支付成功页;
image.png

5.点击支付成功页右上角 完成 按钮,可跳转到自定义页面,开发者可根据付款结果个性化展示订单处理结果,如下图所示。(支持跳转到生活号页面,但仅允许跳转至与该小程序关联的生活号页面,更多跳转方式信息请参见 生活号客户端跳转链接。)
小程序支付.png

准入条件

  • 申请者必须拥有经过实名认证的支付宝账户;
  • 企业或个体工商户均可申请;
  • 需提供真实有效的营业执照,且支付宝账户名称需与营业执照主体一致;
  • 网站能正常访问且页面显示完整,网站需要明确经营内容且有完整的商品信息;
  • 网站必须通过 ICP 备案。如为个体工商户,网站备案主体需要与支付宝账户主体名称一致;如为个体工商户,则团购不开放,且古玩、珠宝等奢侈品、投资类行业无法申请本产品。

计费模式

费率按单笔计算。
一般行业费率:0.6%;特殊行业费率:1.2%,特殊行业范围包括:手机、通讯设备销售;家用电器;数码产品及配件;休闲游戏;网络游戏点卡、渠道代理;游戏系统商;网游周边服务、交易平台;网游运营商(含网页游戏)。

接入指引

创建小程序

要在您的小程序内使用小程序支付功能,您需要首先完成开发者入驻创建小程序

添加功能

小程序创建完成后,开发者在 功能列表 部分可以点击 添加功能 来给创建的小程序添加功能,如下图所示;开发者勾选 小程序支付 功能后,点击右下角 确定 即完成添加功能。

注意
第三方应用如果需要添加小程序支付功能,需要首先完成签约当面付功能。

签约

小程序支付需要签约才能生效,在小程序上线后,请点击功能列表右侧对应功能的 签约 链接;签约成功后,需要 1 个工作日左右的审批时间(审批结果会以短信和邮件形式告知),审批成功后,功能状态会变为“已生效”,即可调用小程序支付功能。

调用接口

在开发者调用接口前,请先了解 小程序框架 和支付宝开放平台服务端 SDK。开放平台服务端 SDK 包含了 JAVA、PHP、Python、NodeJS 和 .NET五种语言版本,封装了签名、验签和 HTTP 接口请求等基础功能。请先下载对应语言版本的 SDK 并引入您的开发工程。 
在 SDK 调用前需要进行初始化,以 JAVA 代码为例:

AlipayClient alipayClient = new DefaultAlipayClient(URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE);

小程序支付调用流程如下图所示:
Image 9.png

主要步骤

1.在小程序端调用 my.request 接口,连接到商户服务端。

my.request({
  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'});
  }
});

2.在服务端调用 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。具体业务参数请参考统一收单交易创建接口。

3.在小程序端使用 tradeNO,调用 my.tradePay 接口唤起支付收银台。

my.tradePay({
		tradeNO: '2017111521001104105336677922',  
		success: function(res) {
			my.alert(res.resultCode);
		},
		fail: function(res) {
          my.alert(res.resultCode);
       },
	});

接入花呗分期说明

小程序支付目前支持花呗分期的付款方式。要在小程序支付中使用花呗分期付款,只需要开发者在 alipay.trade.create (统一收单交易创建接口接口)中传入对应的参数即可。小程序支持以下两种模式接入花呗分期。

标准收银台模式
支付宝标准收银台展示花呗分期渠道(仅用户承担手续费),无需额外签约花呗分期,仅需开发者在 alipay.trade.create (统一收单交易创建接口接口)中传入参数 enable_pay_channels=pcreditpayInstallment

单通道模式
要实现花呗分期单通道模式,将花呗分期资金渠道与支付宝并列,开发者除了在收单接口的可用渠道参数传入 enable_pay_channels=pcreditpayInstallment 外,还需要将花呗分期参数传入到 extend_params  中,格式如下:

"extend_params":{"hb_fq_num":"3","hb_fq_seller_percent":"100"}
  • hb_fq_num 代表花呗分期数,仅支持传入 3、6、12,其他期数暂不支持,传入会报错;
  • hb_fq_seller_percent 代表卖家承担收费比例,商家承担手续费传入 100,用户承担手续费传入 0,仅支持传入 100、0 两种,其他比例暂不支持,传入会报错。

API 列表

接口名称 接口中文名称
alipay.trade.create 统一收单交易创建接口
my.tradePay 小程序唤起支付
my.httpRequest 向指定服务器发起一个跨域 http 请求

补充说明