微信小程序> 支付宝线上资金授权(小程序)

支付宝线上资金授权(小程序)

浏览量:528 时间: 来源:hakeedra

调过的最难调的接口 /捂脸,不同位置的文档不同的参数,有的文档里面还找不到,参数报错原因找不到

参考文档:

支付宝小程序资金授权相关链接

支付宝资金API

支付宝商户后台

支付宝授权文档

 

依赖:

dependency    groupIdcom.alipay.sdk/groupId    artifactIdalipay-sdk-java/artifactId    version3.4.49.ALL/version/dependency

1.发起授权(下面的方法仅支持余额+银行卡(不支持花呗))

注意:这个订单号需要每次请求换一个新的,不然这个接口虽然调用成功,但是小程序唤起支付的时候会失败;

如果填写了extraParam,则使用信用授权

public String frozen(String orderName, String orderNo, Long totalAmount, String gid) {    try {        AlipayClient alipayClient = new DefaultAlipayClient(GET_WAY, APP_ID, PRIVATE_KEY, "json", CHARSET, PUBLIC_KEY, "RSA2");        AlipayFundAuthOrderAppFreezeRequest request = new AlipayFundAuthOrderAppFreezeRequest();        AlipayFundAuthOrderAppFreezeModel model = new AlipayFundAuthOrderAppFreezeModel();        model.setOrderTitle(orderName + "资金授权");        //替换为实际订单号        model.setOutOrderNo(orderNo);        //替换为实际请求单号,保证每次请求都是唯一的(just like wx's nonce_str)        model.setOutRequestNo(OrderNoUtil.genOrderNo());        //PRE_AUTH_ONLINE为固定值,不要替换        model.setProductCode("PRE_AUTH_ONLINE");        //格式为0.01        model.setAmount(MoneyUtil.trans(totalAmount));        //如果是信用授权 则下面注释的必须传        MapString, String extraParam = new HashMap();        extraParam.put("category", "RENT_LUGGAGE");        extraParam.put("outStoreCode", "G" + gid);        extraParam.put("outStoreAlias", orderName);        model.setExtraParam(JSON.toJSONString(extraParam)); //outStoreAlias将在用户端信用守护、支付信息、账单详情页展示        request.setBizModel(model);        request.setNotifyUrl(NOTIFY_URL);        AlipayFundAuthOrderAppFreezeResponse response = alipayClient.sdkExecute(request);        if (response.isSuccess()) {            return response.getBody();        }    } catch (AlipayApiException e) {        e.printStackTrace();    }    return null;}

2.发起授权(允许使用花呗等)

接口调用成功,小程序调起报错:订单参数异常,请重新下单后再发起付款。(ALIN42682)

//商户可用该参数指定用户可使用的支付渠道,本期支持商户可支持三种支付渠道,余额宝(MONEY_FUND)、花呗(PCREDIT_PAY)以及芝麻信用(CREDITZHIMA)。商户可设置一种支付渠道,也可设置多种支付渠道。model.setEnablePayChannels("{"payChannelType":"MONEY_FUND"},{"payChannelType":"PCREDIT_PAY"},{"payChannelType":"CREDITZHIMA"}]");// 如果上面的渠道里面有涉及到 花呗,则下面的两个参数比传(二选一,以PayeeUserId为准)model.setPayeeUserId(userId);//payee_user_id,Payee_logon_id不能同时为空//model.setPayeeLogonId("Payee_logon_id");

3.授权转支付

注意:sellerId比传,可以去商户后台找到,不传的时候一直是 参数错误;

authNo非authCode

public String auth2trade(String orderNo, String authNo, String orderName, Long totalAmount, String openId) {    try {        AlipayClient alipayClient = new DefaultAlipayClient(GET_WAY, APP_ID, PRIVATE_KEY, "json", CHARSET, PUBLIC_KEY, "RSA2");        AlipayTradePayRequest request = new AlipayTradePayRequest();        request.setNotifyUrl(NOTIFY_URL);        AlipayTradePayModel model = new AlipayTradePayModel();        // 预授权转支付商户订单号,为新的商户交易流水号        model.setOutTradeNo(orderNo);        // 固定值PRE_AUTH_ONLINE        model.setProductCode("PRE_AUTH_ONLINE");        // 填写预授权冻结交易号        model.setAuthNo(authNo);        // 解冻转支付标题,用于展示在支付宝账单中        model.setSubject(orderName);        // 结算支付金额(格式:0.01)        model.setTotalAmount(MoneyUtil.trans(totalAmount));        // 填写卖家支付宝账户pid(必填)        model.setSellerId(SELLER_ID);        // 填写预授权用户uid,通过预授权冻结接口返回的payer_user_id字段获取(支付宝userId)        model.setBuyerId(openId);//            model.setStoreId("G" + goodsId); // 填写实际交易发生的终端编号,与预授权的outStoreCode保持一致即可//            model.setBody(orderName + "授权转支付"); // 可填写备注信息        /*        预授权确认模式,授权转交易请求中传入,适用于预授权转交易业务使用,目前只支持            PRE_AUTH(预授权产品码)            COMPLETE:转交易支付完成结束预授权,解冻剩余金额;            NOT_COMPLETE:转交易支付完成不结束预授权,不解冻剩余金额         */        model.setAuthConfirmMode("NOT_COMPLETE");        request.setBizModel(model);        AlipayTradePayResponse response = alipayClient.execute(request);        log.info(JSON.toJSONString(response));    } catch (AlipayApiException e) {        e.printStackTrace();    }    return null;}

4.取消冻结,用官方示例,没坑

 

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎