支付相关(二):APP支付宝支付-转账到支付宝账号(JAVA服务端开发)

本文介绍了如何在JAVA服务端实现APP支付宝支付的转账功能,特别是转账到支付宝账号。通过获取支付宝授权的auth_code,服务端可以获取用户信息并进行转账操作。详细阐述了使用ALIPAY_USERID进行转账的步骤,包括支付宝授权的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先确保签约单笔转账到支付宝账号

转账到支付宝账号是APP这边一个提现的功能。支付宝提供了可以转账到支付宝账号的功能,可选择收款方账户类型。可取值:

1、ALIPAY_USERID:支付宝账号对应的支付宝唯一用户号。以2088开头的16位纯数字组成。2、ALIPAY_LOGONID:支付宝登录号,支持邮箱和手机号格式。

a、转到支付宝唯一用户号,获取1ALIPAY_USERID的方式需要,支付宝授权才能拿到,下面会有代码实现

b、转账到支付宝登录号,APP可以选择让用户自己填邮箱和手机号

我是用的a方式,b方式具体参照payee_type参数介绍,单笔转账到支付宝账号

代码如下 :

支付宝授权:

  /**
    * 组装支付宝授权登录信息

    */
    @GetMapping("aliInfoStr")
    public ResultModel getAliInfoStr(HttpServletRequest request, HttpServletResponse response){
        ResultModel resultModel= new ResultModel();
        String targetId = String.valueOf(UUID.next());
        String signstr="";
        String signs = "apiname=" + AliPayConfig.AUTH_API_NAME +
                "&method=" + AliPayConfig.AUTH_API_METHOD +
                "&app_id=" + AliPayConfig.APP_ID_USER +
                "&app_name=" + AliPayConfig.AUTH_APP_NAME +
                "&biz_type=" + AliPayConfig.AUTH_BIZ_TYPE +
                "&pid=" + AliPayConfig.AUTH_PID +
                "&product_id=" + AliPayConfig.AUTH_PRODUCT_ID +
                "&scope=" + AliPayConfig.AUTH_SCOPE +
                "&target_id=" + targetId +
                "&auth_type=" + AliPayConfig.AUTH_TYPE +
                "&sign_type=" + AliPayConfig.SIGN_TYPE ;
        try {
             signstr = AlipaySignature.rsaSign(signs,AliPayConfig.PRIVATE_KEY,AliPayConfig.CHARSET,AliPayConfig.SIGN_TYPE);
            signstr=signs+"&sign="+signstr;
            resultModel.setStatus(0);
            resultModel.setMessage("支付宝授权串组装成功");
            resultModel.setResultObject(signstr);
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
        return  resultModel;
    }

组装返给APP,支付宝调能成功调起授权,把auth_code给服务端去获取用户信息

 /**
    *  获取acesstoken 获取用户信息
    */
    @PostMapping("getAccessToken")
    public ResultModel getAccessToken(@RequestBody OrderDto dto, HttpServletRequest request,
                              HttpServletResponse response) throws AlipayApiException {
        ResultModel resultModel  = new ResultModel();
        AlipayClient alipayClient = new DefaultAlipayClient(AliPayConfig.URL, AliPayConfig.APP_ID_USER, AliPayConfig.PRIVATE_KEY, AliPayConfig.FORMAT, AliPayConfig.CHARSET,AliPayConfig.ALI_PUBLIC_KEY, AliPayConfig.SIGN_TYPE);
        AlipaySystemOauthTokenRequest aliRequest = new AlipaySystemOauthTokenRequest();
        aliRequest.setGrantType("authorization_code");
        aliRequest.setCode(dto.getAliAuthCode());
        AlipaySystemOauthTokenResponse aliResponse = alipayClient.execute(aliRequest);
        String authTokenData = aliResponse.getBody();
        JSONObject authTokenJsonObject = JSONObject.parseObject(authTokenData).getJSONObject("alipay_system_oauth_token_response");
        if(aliResponse.isSuccess()){
                System.out.println("调用成功");
              &nb
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值