美文网首页
支付宝alipay.fund.trans.uni.transfe

支付宝alipay.fund.trans.uni.transfe

作者: 匿名类 | 来源:发表于2019-12-31 10:22 被阅读0次

支付宝后续接口都要升级到公匙证书模式,今天折腾了一下

QQ20191231-101056@2x.png QQ20191231-101545@2x.png QQ20191231-101803@2x.png

绿色框里的三个文件是生成工具生成csr文件输出的,其中私匙内容(字符串)下面代码要用

橙色框里的是支付宝后台上传csr后,下载得到的3个文件,包括阿里公匙证书,阿里根证书,自己应用的根证书. 这三个文件下面代码也要用.

java版本sdk maven 配置

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.40</version>
        </dependency>

        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
            <version>1.64</version>
        </dependency>

        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>4.8.103.ALL</version>
        </dependency>

java代码


import com.alipay.api.AlipayApiException;
import com.alipay.api.CertAlipayRequest;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayFundTransUniTransferModel;
import com.alipay.api.domain.Participant;
import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.internal.util.AntCertificationUtil;
import com.alipay.api.internal.util.file.FileUtils;
import com.alipay.api.request.AlipayFundTransUniTransferRequest;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;

import java.io.File;

import static com.alipay.api.internal.util.file.Charsets.UTF_8;

public class PayTestMain {

    public static void main(String args[]) {
        PayTestMain genCode = new PayTestMain();
        try {
//            genCode.sandTran();
            genCode.readSnInfo();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //读取app公匙序列号 和 根证书序列号
    private void readSnInfo() {
        try {
            System.out.println("app_cert_sn=" + AlipaySignature.getCertSN(
                    "换成绝对路径/appCertPublicKey_xxxxxxxx.crt"));
            String rootCertContent = FileUtils.readFileToString(new File("换成绝对路径/alipayRootCert.crt"),
                    UTF_8);
            System.out.println("alipay_root_cert_sn=" + AntCertificationUtil.getRootCertSN(rootCertContent));
        } catch (Exception e1) {
            e1.printStackTrace();
        }
    }

    


    //转账功能实现,
   //换成正式地址及配置一样使用
    private void sandTran() throws AlipayApiException {

        String sand_pro_key ="私匙文本字符串";
        CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
        //这个是沙箱环境的地址
        //正式的是 https://openapi.alipay.com/gateway.do
        certAlipayRequest.setServerUrl("https://openapi.alipaydev.com/gateway.do");
        certAlipayRequest.setAppId("你的APPID");
        certAlipayRequest.setPrivateKey(sand_pro_key);
        certAlipayRequest.setFormat("json");
        certAlipayRequest.setCharset("UTF-8");
        certAlipayRequest.setSignType("RSA2");
        //上传csr文件后 完成配置,支付宝后台能下载3个文件 
        // 应用公匙
        certAlipayRequest.setCertPath("换成绝对路径/appCertPublicKey_xxxxxxxx.crt");
        // 支付宝公匙
        certAlipayRequest.setAlipayPublicCertPath("换成绝对路径/alipayCertPublicKey_RSA2.crt");
        //支付宝 根 公匙
        certAlipayRequest.setRootCertPath("换成绝对路径/alipayRootCert.crt");

        
        DefaultAlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest);

        
        //这里测试的是转账功能  其他接口参考文档
        AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
        model.setOutBizNo("" + System.currentTimeMillis());
        model.setProductCode("TRANS_ACCOUNT_NO_PWD");
        model.setBizScene("DIRECT_TRANSFER");
        Participant participant = new Participant();
        participant.setIdentity("chwhpi1916@sandbox.com");
        participant.setIdentityType("ALIPAY_LOGON_ID");
        participant.setName("沙箱环境");
        model.setPayeeInfo(participant);
        String totalAmount = "0.20";
        model.setTransAmount(totalAmount);
        model.setRemark("测试单笔转账到支付宝");

        AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
        request.setBizModel(model);

        //这里必须添加 app公匙证书的序列号和阿里根证书的序列号
        //获得方法 是 上面的 readSnInfo()
        request.putOtherTextParam("app_cert_sn", "xxxxxxxx");
        request.putOtherTextParam("alipay_root_cert_sn", "xxxxxxxxxxxxx");

        AlipayFundTransUniTransferResponse response = alipayClient.execute(request);
        if (response.isSuccess()) {
            System.out.println("调用成功");
        } else {
            System.out.println("调用失败");
        }
    }


}

相关文章

  • 支付宝alipay.fund.trans.uni.transfe

    支付宝后续接口都要升级到公匙证书模式,今天折腾了一下 绿色框里的三个文件是生成工具生成csr文件输出的,其中私匙内...

  • 奖品合集

    支付宝44.44x12 支付宝200x1 支付宝121x1 支付宝111x1 支付宝100x1 支付宝88x1 支...

  • Android支付宝支付集成

    Android支付宝支付 标签: android Android支付宝支付使用的流程介绍 支付宝流程介绍 支付宝流...

  • 历害word哥,支付宝AR红包风靡朋友圈

    支付宝又来搞事情,2016年12月22日,支付宝又出新玩法:支付宝AR红包! 支付宝用户可以利用支付宝的红包功能:...

  • iOS支付宝功能集成

    iOS快速集成支付宝详解/支付宝集成获取私钥与公钥 在集成支付宝功能前,我们必须了解下什么支付宝流程,下图是支付宝...

  • 支付宝小程序相关文档

    支付宝开放平台文档 支付宝开放平台文档 支付宝开放平台文档 支付宝开放平台文档 获取手机号信息

  • 对接支付宝支付接口开发笔记

    支付宝对接学习笔记: 功能介绍: 支付宝对接 支付宝回调 查询支付状态(略过不讲) 要求: 熟悉支付宝对接核心文档...

  • 支付宝支付

    支付宝集成的介绍 第三方支付平台,支付宝是用户将钱付款给支付宝,之后支付宝将钱转入我们自己的账户。 集成支付宝的步...

  • ## [iOS 支付宝支付]

    [iOS开发系列-支付宝支付] 概述 开发中支付通常都会集成支付宝支付,下面讲解支付宝的整体流程。 集成支付宝支付...

  • 20180714早骑行20公里

    支付宝image.png支付宝的大楼还是很有特色的,类似古代的方形钱币。支付宝下面有很多银行。所以,支付宝和银行的...

网友评论

      本文标题:支付宝alipay.fund.trans.uni.transfe

      本文链接:https://www.haomeiwen.com/subject/xrcboctx.html