支付宝小程序API 信用借还

2018-01-09 11:46 更新

有关信用借还详细功能,见信用借还产品介绍

my.zmCreditBorrow

调用此接口唤起芝麻信用页面

入参说明

注意:

  1. 如果参数值有中文, 请使用 encodeURIComponent 来编码该参数值;
  2. 如果 invoke_stateJSON 字符串的某一项值包含中文,请使用encodeURIComponent对该值进行编码;
名称 类型 必填 描述
out_order_no String 外部订单号,需要唯一,由商户传入,芝麻内部会做幂等控制,格式为:yyyyMMddHHmmss+随机数
product_code String 信用借还的产品码,传入固定值:w1010100000000002858
goods_name String 物品名称,最长不能超过14个汉字
rent_unit String 租金单位,租金+租金单位组合才具备实际的租金意义。取值定义如下:DAY_YUAN:元/天HOUR_YUAN:元/小时YUAN:元YUAN_ONCE: 元/次
rent_amount String 租金,租金+租金单位组合才具备实际的租金意义。>0.00元,代表有租金=0.00元,代表无租金,免费借用注:参数传值必须>=0,传入其他值会报错参数非法
deposit_amount String 押金,金额单位:元。注:不允许免押金的用户按此金额支付押金;当物品丢失时,赔偿金额不得高于该金额。
deposit_state String 该字段目前默认传Y;是否支持当借用用户信用不够(不准入)时,可让用户支付押金借用:Y:支持N:不支持 注:支付押金的金额等同于deposit_amount。
invoke_return_url String 回调到商户的小程序schema地址。说明:商户的回调地址可以在商户后台里进行配置,服务端回调时,首先根据参数:invoke_type 查询是否有对应的配置地址,如果有,则使用已定义的地址,否则,使用该字段定义的地址执行回调;参考表格下方的说明一;小程序回调地址参考表格下方的说明三;
invoke_type String 商户访问蚂蚁的对接模式,默认传TINYAPP:TINYAPP:回跳至小程序地址;WINDOWS:支付宝服务窗,默认值;
credit_biz String 信用业务服务,注意:该字段不能为空,且必须根据说明的指引配置商户专属的场景ID,商户自助接入时,登录后台可配置场景ID,将后台配置的场景ID作为该字段的输入;参考说明一自助进行配置;
borrow_time String 商户订单创建的起始借用时间,格式:YYYY-MM-DD HH:MM:SS。如果不传入或者为空,则认为订单创建起始时间为调用此接口时的时间。
expiry_time String 到期时间,不允许为空,请根据实际业务合理设置该值,格式:YYYY-MM-DD HH:MM:SS,是指最晚归还时间,表示借用用户如果超过此时间还未完结订单(未归还物品或者未支付租金)将会进入逾期状态,芝麻会给借用用户发送催收提醒;需要晚于borrow_time。
mobile_no String 借用用户的手机号码,可选字段。推荐商户传入此值,会将此手机号码与用户身份信息进行匹配验证,防范欺诈风险。
borrow_shop_name String 物品借用地点的描述,便于用户知道物品是在哪里借的。可为空
rent_settle_type String 租金的结算方式,非必填字段,默认是支付宝租金结算支付 merchant:表示商户自行结算,信用借还不提供租金支付能力; alipay:表示使用支付宝支付功能,给用户提供租金代扣及赔偿金支付能力;
invoke_state String 商户请求状态上下文。商户发起借用服务时,需要在借用结束后返回给商户的参数,格式:json;如果json的某一项值包含中文,请使用encodeURIComponent对该值进行编码;例如:var ext = {  name: encodeURIComponent('名字')};var obj = {  invoke_state: JSON.stringify(ext)}
rent_info String 租金信息描述 ,长度不超过14个汉字,只用于页面展示给C端用户,除此之外无其他意义。
name String 借用用户的真实姓名,非必填字段。但name和cert_no必须同时非空,或者同时为空,一旦传入会对用户身份进行校验。
cert_no String 借用用户的真实身份证号,非必填字段。但name和cert_no必须同时非空,或者同时为空,一旦传入会对用户身份进行校验。
address String 借用用户的收货地址,可选字段,最大长度128。推荐商户传入此值,会将此手机号码与用户身份信息进行匹配验证,防范欺诈风险。
success Function 调用成功的回调函数
fail Function 调用失败的回调函数
complete Function 调用结束的回调函数(调用成功、失败都会执行)

说明一:

  1. 支付宝商户账号登录我的商家服务打开入口链接;
  2. 商家服务中选择“您可能需要->信用借还”或者点击链接;
  3. 场景ID配置->配置新ID,选择对应的业务类型、服务类目和联盟,将生成的场景ID作为credit_biz的值传入即可;
  4. 回调地址配置->修改对应类型的回调地址

说明二:

  1. 如果参数值中有中文, 请使用 encodeURIComponent 来编码参数值;
  2. 如果 invoke_state 的 JSON 字符串的某一项值包含中文,请使用encodeURIComponent对该值进行编码;

说明三:

  1. 小程序回调地址示例一:alipays://platformapi/startapp?appId=1999;
  2. 小程序回调地址示例二:alipays://platformapi/startapp?appId=1999&page=pages/map;

出参

名称 类型 示例值 描述
invoke_state String {"user_name":"john"} 商户发起借用服务时传入的参数,需要在借用结束后返回给商户的参数
out_order_no String 201610010000283627 外部订单号,需要唯一,由商户传入,芝麻内部会做幂等控制,格式为yyyyMMddHHmmss+4位随机数
order_no String 10020027631 芝麻信用借还订单号
admit_state String Y 是否准入:Y:准入;N:不准入(该字段目前无实际意义)
user_id String 2088202924240029 物品借用/租赁者的用户id

其他字段:

resultStatus 状态码

resultStatus 描述
6001 用户取消了业务流程
6002 网络异常
9000 成功
4000 系统异常

错误码

统一对外错误码 内部业务错误码 错误描述 解决方案
INVALID_PARAMETER ZMMER.ILLEGAL_ARGUMENT 参数有误。 请确认参数格式
INVALID_PARAMETER ZMMER.NULL_ARGUMENT 参数有误。 请确认参数是否正确
ARRANGEMENT_NOT_EXIST ZMMER.ARRANGEMENT_NOT_EXIST 商户对产品未签约 请联系业务与芝麻签约信用借还产品
DEPOSIT_CLOSED ZMMER.DEPOSIT_CLOSED 不支持押金模式 目前不支持押金模式,请与芝麻业务确认
GOODS_HAS_BORROW ZMMER.GOODS_HAS_BORROW 该物品已经借用,请先归还后再借 请先归还物品
PREAUTH_FREEZE_ERROR ZMMER.PREAUTH_FREEZE_ERROR 该用户预授权冻结押金失败 请确认支付宝账号中是否有足够的金额
WITHHOLD_CONTRACT_ERROR ZMMER.WITHHOLD_CONTRACT_ERROR 签约代扣协议错误 请联系支付宝客服
ZM_ACCOUT_REGISTER_FAIL ZMMER.ZM_ACCOUT_REGISTER_FAIL 芝麻会员开通失败 请确保支付宝会员是否正常
OUT_ORDER_NO_INVALID ZMMER.OUT_ORDER_NO_INVALID 外部订单号重复 请更换外部订单号
USER_NOT_LOGON ZMMER.USER_NOT_LOGON 该支付宝账号没有登录 请登录支付宝
INFOSEC_VERIFY_FAILED ZMMER.INFOSEC_VERIFY_FAILED 信息含敏感内容 请检查入参信息是否包含敏感内容

示例代码

    my.zmCreditBorrow({
      credit_biz: "",
      out_order_no: "",
      borrow_shop_name: "",
      goods_name: "",
      product_code: "w1010100000000002858",
      rent_unit: "HOUR_YUAN",
      rent_amount: "0.10",
      deposit_amount: "0.50",
      deposit_state: "Y",
      invoke_return_url: "",
      invoke_type: "TINYAPP",
      borrow_time: "2017-04-27 10:01:01",
      expiry_time: "2017-05-27 10:01:01",
      rent_info: "2hour-free",
      success: (res) => {
        try {
          const {resultStatus, result} = res;
          switch (resultStatus) {
            case '9000':
              const callbackData = res.result.callbackData;
              const decodedCallbackData = decodeURIComponent(callbackData)
              const json = JSON.parse(decodedCallbackData.match(/{.*}/));
              const jsonStr = JSON.stringify(json, null, 4);
              if (json.success === true || json.success === 'true') {
                // 创建订单成功, 此时可以跳转到订单详情页面
                my.alert({content: '下单成功: ' + jsonStr})
              } else {
                // 创建订单失败, 请提示用户创建失败
                my.alert({content: '下单失败: ' + jsonStr})
              }
              this.setData({
                callbackData: callbackData,
                decodedCallbackData: decodedCallbackData,
                parsedJSON: jsonStr,
              })
              break;
            case '6001':
              // 用户点击返回, 取消此次服务, 此时可以给提示
              my.alert({content: '取消'})
              break;
            default:
              break;
          }
        } catch (error) {
          // 异常, 请在这里提示用户稍后重试
          my.alert({
            content: '异常' + JSON.stringify(error, null, 4)
          });
        }
      },
      fail: (error) => {
        // 调用接口失败, 请在这里提示用户稍后重试
        my.alert({
          content: '调用失败' + JSON.stringify(error, null, 4)
        });
      }
    }); 
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号