快速接入

此文档用以说明申请服务的方法和流程,请产品和技术人员阅读此文档

第一步:创建应用

要在您的应用中使用支付宝开放产品的接口能力:

  1. 您需要先去支付宝开放平台(open.alipay.com),在开发者中心创建登记您的应用,此时您将获得应用唯一标识(APPID);
  2. 请在【功能信息】中点击【添加功能】,选择【交易安全防护】;
  3. 提交审核,等待审核通过,该应用正式可以使用。
    需要详细了解开放平台创建应用步骤请参考《开放平台应用创建指南》。

第二步:配置密钥及应用网关地址

1.密钥

开发者调用接口前需要先生成RSA2密钥,RSA2密钥包含应用私钥(APP_PRIVATE_KEY)、应用公钥(APP_PUBLIC_KEY)。生成密钥后在开放平台管理中心进行密钥配置,配置完成后可以获取支付宝公钥(ALIPAY_PUBLIC_KEY)。详情请参考《配置应用环境》。

2.应用网关地址

您还需要在第一步中生成的应用上,配置一个接收我们推送的信息的URL地址。具体位置在登录开发平台后,开发中心->网页&移动应用->查看详情->应用网关。如果后续您想修改此地址,可随时来此路径修改,修改实时生效。

第三步:搭建和配置开发环境

1.下载服务端SDK

为了帮助开发者调用开放接口,我们提供了开放平台服务端SDK,包含JAVA、PHP和.NET三个语言版本,封装了签名&验签、HTTP接口请求等基础功能。请先下载对应语言版本的SDK并引入您的开发工程中。
各语言版本服务端SDK详细使用说明,请参考《服务端SDK使用说明

2.接口调用配置

在SDK调用前需要进行初始化,代码如下:

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

关键参数说明:

配置参数 示例值解释 获取方式/示例值
URL 支付宝网关(固定) https://openapi.alipay.com/gateway.do
APPID APPID即创建应用后生成 获取见上面创建应用
APP_PRIVATE_KEY 开发者私钥,由开发者自己生成 获取详见上面配置密钥
FORMAT 参数返回格式,只支持json json(固定)
CHARSET 编码集,支持GBK/UTF-8 开发者根据实际工程编码配置
ALIPAY_PUBLIC_KEY 支付宝公钥,由支付宝生成 获取详见上面配置密钥
SIGN_TYPE 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 RSA2

接下来,就可以用alipayClient来调用具体的API了。alipayClient只需要初始化一次,后续调用不同的API都可以使用同一个alipayClient对象。

TIPS:ISV/开发者可以通过“第三方应用授权”得到商户授权令牌(app_auth_token)作为请求参数传入,实现代商户发起请求的能力;具体方法请参考第三方应用授权

第四步:接口调用

场景描述

您可在签约支付宝收单业务的同时,签约此服务,请注意此服务需要您提供一个接收我们推送信息的URL地址,具体可参看第二步中的“应用网关地址”

接口调用流程

针对产品业务文档中的业务场景,以序列图的形式给出交互处理流程,明确API接口调用顺序和关联关系。

序列图的样例如下:

image.png

SDK调用示例(以JAVA为例)

  1.  alipay.adatabus.risk.end.push 接口用于接收支付宝主动推送的风险交易,无调用示例
  2.  alipay.security.risk.customerrisk.send 接口用于您将风险交易的处理方式回传给我们,请按照以下代码示例格式回传:
       public static AlipaySecurityRiskCustomerriskSendResponse testRiskSend() throws AlipayApiException{
    AlipaySecurityRiskCustomerriskSendRequest request = new AlipaySecurityRiskCustomerriskSendRequest();
    //此处字段值是示例,实际调试时,按实际情况填写
    String bizContent ="{"plat_account":"659004198009128344","
  • ""process_code":"01"," // 请回传01-99的阿拉伯数字
  • ""bank_card_no":"421234234234234000","
  • ""cert_no":"150239198500000000","
  • ""merch_name":"xx商品","
  • ""trade_no":"2017113021001004640000000000","
  • ""business_license_no":"34xggdf345","
  • ""mobile":"18667000000"}";
    request.setBizContent(bizContent);
    //秘钥、签名方式等,按实际情况填写即可,此处仅示例
    AlipayClient alipayClient = new DefaultAlipayClient(serverUrl,APP_ID,APP_PRIVATE_KEY,"json",charset,ALIPAY_PUBLIC_KEY,"RSA2");
    AlipaySecurityRiskCustomerriskSendResponse response = alipayClient.execute(request);
    return response;
    //联调时可以在这里加个输出看response内容返回:System.out.print(response.getBody());}

间连业务场景

参数
是否必填
描述
示例值
cert_no
风险交易对应商户负责人身份证号码
659004198009128344
bank_card_no
结算银行卡号
421234234234234234
smid
子商户号
17022079254
external_id
商户在银行的ID
2088011993690428
process_code
对商户的处理情况: 01:已延迟结算,02:关停商户,10:切换到普通费率通道99:其他
多重处理结果可调用多次,每次回传一种处理结果
01
business_license_no
营业执照号码
34xggdf345

直连业务场景

如无法回传,或没有对应信息,可填写null

参数
中文名称
是否必回传项
描述
示例值
plat_account
平台账号
指第三方在商户平台注册成功后,平台给予的账户号
trade_no
交易号
支付宝推送的风险消息中的交易号
2017113021001004640000000000
pid
合作者身份ID
填写与trade_no对应的pid。2088开头的16位数字
2088123456789012
bank_card_no
银行卡号
该账号对应的银行卡号
421234234234234000
cert_no
身份证号
该账号对应的身份证号
150239198500000000
business_license_no
营业执照号
该账号对应的营业执照号
34xggdf345
mobile
手机号
该账号对应的手机号
18667000000
mobile_ip
手机号IP
该账号对应的手机号的IP
10.253.231.22
order_ip
下单IP
该账户在商户平台下单时的MAC地址或IP地址
00000000-01010000-10111010
merch_name
商品名称
该笔风险交易购买的具体商品名称
xx商品
email_address
邮箱地址
该账户注册时填写的邮箱地址
 
process_code
处理结果
商户对该账户采取的措施。
多种处理结果可调用多次,每次回传一种处理结果。(01:暂停发货;02:延迟结算;03:关停账户;04:暂停发货+关停账户;05:延迟结算+关停账户;06:其他;07:平台进行退款退订;08:平台跟用户沟通后,用户撤诉;09:未进行处理。)
01
onlineServer