Java支付宝手机支付和电脑网页支付( 沙箱环境 )

  1. 登录支付宝开发平台 -->开发接入 如下图
    支付宝开发
  2. 找到开发服务中的沙箱 点击查看沙箱开发的流程 进入到沙箱环境中 配置相应的信息 支付宝沙箱环境
    在这里插入图片描述
  3. 在代码中配置支付宝支付对应的参数
#支付宝应用网关
pay.aliPay.gatewayUrl=https://openapi.alipaydev.com/gateway.do
#商户应用id
pay.aliPay.appId=2016101100659345
#开发者应用私钥 (格式为pkcs8)
pay.aliPay.appPrivateKey=MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDpLRkEsgtykhIGoZITEaEqTOOmrQ1bxFUucPRrTk6NxIeTAQihl2NjBW8F6qI9i623n1H9zkW8l4ZoheTpsH7L2/PKVpcWXlrPUpJBVxLXyTAeyDi3KqriYufLjBej7DW03d61mewVzrtSPjNCLdPu7eZQOc6w4G6x2GlhWZNB0sRDxaI3b4tZpsxoNNNCegpf/mNLOg+Oprby6/J8KefwV7Ew0lczN1uRpEWHEiQ4H9Z8wPR0APakqMZD9oJDFUhM9OjNSxQyhOeNOK6uotxqwgVSemHs/leaWKofLr90HBoTVayqz2RfDro2rRxFxJsHlQE0wI1Q4CesBikn3OarAgMBAAECggEBAMkJkOBzgVsuhUwiUYcPVBzcXgp+eV39UFPSH2nFAgVIxHsCEScBFzdwn+BCA898djIyssZY6ddH7SKBDnRNL4UkBnUVYv5uK21Ei8S6Bgz18P8ZMYz6xIqbK65bAqbaKRPflvyL0PicXPTzm84bJPaDNmdE7+egGNBM/c5pJIVCRWB9Yiv/kbxu8QhEZJlNCQOs5hFrcRhScqYcqWEkOS3xnvMWY7af2wojBAEjrYDxdhzt45+/aJoExGyeQX4UsBdIgLIryeC219zfEmhgR+nf2C16sR7wBWPVZzW5fMoYx5NRcJFTXWCWLXzZW36F59r2PS4I4CGv97E4FEnB88ECgYEA/E6WfzNJlWMO0ZTfC5JW6y+8y8z6QlByNZfMnXIl90fMeZ0LPzBbs8ZDt4MUqsYWrJy1inXKC0C3XZP81zKlX0t4aL8SwMKCyA7Otqv63rFAC9JRt9zWnRa+JWEoNdbZ0d7oCWCmpCY89ie6inNhlX9LmKQIuaebqE2JU3KxnrcCgYEA7JbTR4JGFZZSw00qvCLh1W0fFBNa8CFNNgks0VV9IjIeNJ68XuJUdAb5Horuuo6jUZtzU5qr4ZkElvddv/VC8CoUCqUpOsU3sNtHbiwbyxSOitsoWC2CNpmqDc67Pq3eyAXryjRbpSD9fH8huRy4K0J8sd66AoPA2UB6Rc5Lg60CgYEAhXhZWs7Z1UICu9ICMA/pFR86w6EanmwKDtnPr1aMSQTdYVQ3d+TwDekLN5ALJdAGfKelzapECLHijolTzs+G9iNpfhfeJsR/BK/4oF/YJWgk1lwbSKV1jsJSMln0OI8AyWoe258aaGmmBB2+K7Gf5MLjTcswpm3JBT6HL/LTjX8CgYEA0zX22nD/tkfkDPy3+Qs/B3UKeLaqyZNBRcs9GoiyVLPfaWSIkECH2qla/xxS8XNjc/hOJcYASj977HZbWIJRRuyZxcMaop/sDtRD2aRBD7SDaI0sYEQIakwWl4sGeHdqWrGGhZbmde2Uvu8UIRj1hZEulvBaqOIMaSb5wZXgrmUCgYAPA57hnzq5VRm2NT13CjLqw946zhnD1M+gejp2lLAySiYo7ElEvlO+yLNQvo3M7d1Dd98V4+++DdgVvKfLAQb+8WeK0UGRjLE38zR4vkJ9i2kO02equge8ONbGBiBGcC0104oYyIrsPLTwP7nLHlL3BEp0lIyCsRYK3zK0YXLw4g==
#支付宝公钥
pay.aliPay.aliPayPublicKey=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnV7vZfn13Mxx7KXN4LbZr9LB4+bK/JR/t9tPeWTyd7xJcnGpVg5lZ2MCx5O/Zbfj0ORqATKlPMe95Wbr85eHz1U3jIgqKJuC87PoBU8YF+LtfSJEWFmD+uZfNDUAuG2NdJ1VTKtEHHmaGu3IXbA6ff6iF6iFNGO94Tyx0a+Wg2U9dJEnrtMNq//AEStHnHjkfXloLpQ6bPn431+L07+IrWVWU1hrFHiTsNdYe7Um5XPtwCPfD6dxHGgvMFCxxhEzbAaXDkgaOFnsql857EHOSeOBmvfi7yfVlfFE2j9E4aTBVo/A6mY9+zZ3+iSiSDf5sneRN95+VpP0s2ZJy7yUewIDAQAB
#同步地址
pay.aliPay.returnUrl=http://yxep7y.natappfree.cc/alipay/return
#异步地址
pay.aliPay.notifyUrl=http://yxep7y.natappfree.cc/alipay/notify
#请求支付宝接口返回数据格式,只支持 json
pay.aliPay.format=json
#编码集,支持 GBK/UTF-8
pay.aliPay.charset=UTF-8
#商户生成签名字符串所使用的签名算法类型,目前支持 RSA2 和 RSA,推荐使用 RSA2
pay.aliPay.signType=RSA2
  1. 配置阿里支付Client
@Configuration
public class AliPayConfiguration {

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    /** 支付宝应用网关 */
    @Value("${pay.aliPay.gatewayUrl}")
    private String gatewayUrl;

    /** 商户应用id */
    @Value("${pay.aliPay.appId}")
    private String appId;

    /** 开发者RSA私钥,用于对商户请求报文加签 */
    @Value("${pay.aliPay.appPrivateKey}")
    private String appPrivateKey;

    /** 支付宝RSA公钥,用于验签支付宝应答 */
    @Value("${pay.aliPay.aliPayPublicKey}")
    private String aliPayPublicKey;

    /**
     * alipay-sdk-java 阿里支付Client
     * @return DefaultAlipayClient
     */
    @Bean
    public AlipayClient alipayClient(){
        return new DefaultAlipayClient(gatewayUrl,appId,appPrivateKey,FORMAT_JSON,CHARSET_UTF8,aliPayPublicKey,SIGN_TYPE_RSA2);
    }
}
  1. 接口快速接入
	@Autowired
    private AlipayClient alipayClient;

    /**
     * 支付宝电脑网站支付
     *
     * @param alipayVO 商品实体类
     * @return from表单
     */
    @ResponseBody
    @RequestMapping(value = "/pagePay")
    public String pagePay(AlipayVO alipayVO) throws AlipayApiException {
        // 创建API对应的request
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        alipayRequest.setReturnUrl(returnUrl);// 支付成功之后 同步跳转地址
        alipayRequest.setNotifyUrl(notifyUrl);// 支付成功之后 异步通知地址
        Map<String, Object> map = new HashMap<>();
        map.put("out_trade_no", alipayVO.getOut_trade_no());// 订单号
        map.put("product_code", "FAST_INSTANT_TRADE_PAY");// 销售产品码
        map.put("total_amount", alipayVO.getTotal_amount());// 交易金额,单位:元
        map.put("subject", alipayVO.getSubject());// 订单标题
        map.put("body", alipayVO.getBody());// 订单描述
        alipayRequest.setBizContent(JSON.toJSONString(map));
        // 就是orderString可以直接给客户端请求,无需再做处理。
        return alipayClient.pageExecute(alipayRequest).getBody();
    }

    /**
     * 手机网站支付
     *
     * @param alipayVO 商品实体类
     * @return from表单
     */
    @ResponseBody
    @RequestMapping(value = "/wapPay")
    public String alipayPayChongRequest(AlipayVO alipayVO) throws AlipayApiException {
        //创建手机网站支付API对应的request类(主要是这里变化了)
        AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
        request.setReturnUrl(returnUrl);// 支付成功之后 同步跳转地址
        request.setNotifyUrl(notifyUrl);// 支付成功之后 异步通知地址
        AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();
        model.setOutTradeNo(alipayVO.getOut_trade_no());//商户网站唯一订单号
        model.setSubject(alipayVO.getSubject());//商品的标题/交易标题/订单标题/订单关键字等。
        model.setTotalAmount(alipayVO.getTotal_amount());//订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
        model.setBody(alipayVO.getBody());//商品描述
        model.setTimeoutExpress("1d");//该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。注:若为空,则默认为15d。
        model.setProductCode("FAST_INSTANT_TRADE_PAY");//销售产品码,商家和支付宝签约的产品码
        request.setBizModel(model);
        return alipayClient.pageExecute(request).getBody();
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值