《支付宝对接之-当面付》

《支付宝对接之-当面付》

提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!!


《支付宝对接之-当面付》

  • 《支付宝对接之-当面付》
  • 1. 需求
  • 2. 对接流程
    • 2.1 申请支付宝账号
    • 2.2 示例代码


1. 需求

近期项目中需要对接支付宝进行充值,采用支付宝当面付方式。

2. 对接流程

2.1 申请支付宝账号

参考支付宝文档:
https://opendocs.alipay.com/open

主要步骤如下:
《支付宝对接之-当面付》_第1张图片

Api对接文档:
https://opendocs.alipay.com/apis

2.2 示例代码


    private String alipayCharset="UTF-8";

    private String alipayPublicKey="支付宝的公钥";

    private String alipaySignType="RSA2";

    private String alipayNotifyUrl="支付宝服务器主动通知商户服务器里指定的页面http/https路径。";

    private String alipayReturnUrl;
    
	private static final String alipayAppId = "支付宝分配给开发者的应用ID";
    private static final String alipayGatewayUrl = "https://openapi.alipay.com/gateway.do";
    private static final String alipaySubject = "企业标题";
    private static final String alipayStoreId = "企业storeId";
    private static final String alipayTimeOut = "90m";
    private static final String alipayAppPrivateKey = "企业对应的私钥";
    
  	 /**
     * 支付宝支付
     */
    private String alipay(String orderNo, BigDecimal money) {
        AlipayClient alipayClient = new DefaultAlipayClient(alipayGatewayUrl, alipayAppId, alipayAppPrivateKey, "json", alipayCharset, alipayPublicKey, alipaySignType);
        AlipayTradePrecreateRequest alipayTradePrecreateRequest = new AlipayTradePrecreateRequest();
        alipayTradePrecreateRequest.setBizContent(
                String.format("{\"out_trade_no\":\"%s\",\"total_amount\":\"%s\",\"subject\":\"%s\",\"store_id\":\"%s\",\"timeout_express\":\"%s\"}", orderNo, money, alipaySubject, alipayStoreId, alipayTimeOut));
        alipayTradePrecreateRequest.setNotifyUrl(alipayNotifyUrl);
        try {
            //调用支付宝接口
            AlipayTradePrecreateResponse response = alipayClient.execute(alipayTradePrecreateRequest);
            if (!response.isSuccess()) {
                throw new BusinessException(ErrorCodeEnum.SYSTEM_OPERATION_ERROR, "支付发起失败");
            }

            JSONObject responseBody = JSONObject.parseObject(response.getBody());
            JSONObject json = JSONObject.parseObject(responseBody.get("alipay_trade_precreate_response").toString());
            if (!AlipayConstants.ALIPAY_REQUEST_SUCCESS_CODE.equals(json.get("code"))) {
                throw new BusinessException(ErrorCodeEnum.SYSTEM_OPERATION_ERROR, "支付发起失败");
            }

            return json.toJSONString();
        } catch (AlipayApiException e) {
            throw new BusinessException(ErrorCodeEnum.SYSTEM_OPERATION_ERROR, "支付发起失败");
        }
    }

你可能感兴趣的:(零碎,小程序)