자바 는 어떻게 샌 드 박스 환경 에서 알 리 페 이 결제 인 터 페 이 스 를 테스트 합 니까?

자바 샌 드 박스 환경 테스트 알 리 페 이 결제 인터페이스?
준비 작업,알 리 페 이 오픈 플랫폼 에 로그 인하 여 샌 드 박스 환경 에 진입
오픈 플랫폼 링크:https://developers.alipay.com/platform/developerIndex.htm
在这里插入图片描述
在这里插入图片描述
샌 드 박스 환경 에서 테스트 에 필요 하고 불필요 한 인 자 를 제공 합 니 다.직접 수정 해 야 할 것 은 RSA 키 뿐 입 니 다.알 리 페 이 가 제공 하 는 개발 도 구 를 통 해 RSA 키 를 생 성하 고 링크 를 다운로드 해 야 합 니 다.https://docs.open.alipay.com/291/105971#LDsXr
다운로드 가 완료 되면 RSA 키 를 생 성 할 수 있 습 니 다.생 성 된 키 는 공개 키 를 사용 하고 비밀 키 를 사용 합 니 다.비밀 키 를 사용 하여 스스로 저장 합 니 다.공개 키 를 사용 하려 면 알 리 페 이의 열 린 플랫폼 에 해당 하 는 알 리 페 이 공개 키 를 생 성 해 야 정상적으로 사용 할 수 있 습 니 다.
在这里插入图片描述
在这里插入图片描述
샌 드 박스 도구 중 설정 클릭
在这里插入图片描述
在这里插入图片描述
RSA 에서 생 성 된 응용 키 를 아래 텍스트 상자 에 복사 하고 설정 저장 을 누 르 십시오.
在这里插入图片描述
잘 보존 하 다
在这里插入图片描述
위 작업 이 완료 되면 코드 를 작성 할 수 있 습 니 다.
개발 도구 에 들 어가 코드 를 작성 합 니 다.
설정 클래스 를 만 들 고 설정 을 초기 화 합 니 다.

public class AlipayConfig {
  //   ID,      APPID,        
  public static String app_id = "2016101200670453";

  //     ,  PKCS8  RSA2  
  public static String merchant_private_key = "         **    **";

  //      ,    :https://openhome.alipay.com/platform/appDaily.htm   APPID       。
  public static String alipay_public_key = "               ";

  //              http://       ,   ?id=123       ,          .        ,                      ,            (         )
  public static String notify_url = "http://localhost:8080/pay/alipay-callback-notify-url";

  //               http://       ,   ?id=123       ,          .        ,                      .        ,      .
  public static String return_url = "http://localhost:8080/pay/alipay-callback-return-sult";
  //     ,    ,        RSA  RSA,           ,  RSA2
  public static String sign_type = "RSA2";
  //       
  public static String charset = "utf-8";
  //       
  public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";
}
Maven 좌표 가 져 오기

  <dependency>
      <groupId>com.alipay.sdk</groupId>
      <artifactId>alipay-sdk-java</artifactId>
      <version>3.7.4.ALL</version>
    </dependency>
설정 클래스 를 만 들 고 설정 을 초기 화 합 니 다.
컨트롤 러 클래스 를 써 서 프론트 데스크 에 접근 하고 결제 인 터 페 이 스 를 호출 합 니 다.

@RequestMapping("/toPay")//       
  @ResponseBody//    ,        
  public String toPay(String id,String sumMoney) throws Exception{
    byte[] serialize = SerializeUtil.serialize(orderIds);
    redisServer.setCacheValueForTime(uuid,serialize,1000*60*60*30);
    //      AlipayClient,                    
    AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);
    //      ,               
    AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
    alipayRequest.setReturnUrl(AlipayConfig.return_url);
    alipayRequest.setNotifyUrl(AlipayConfig.notify_url);
    //                   ,out_trade_no:   ,     ,                ,total_amount:       ,   String ,        ","    (  1,000       ),subject:       ,product_code:     .             : [https://docs.open.alipay.com/api_1/alipay.trade.page.pay](https://docs.open.alipay.com/api_1/alipay.trade.page.pay)
    try {
      alipayRequest.setBizContent("{\"out_trade_no\":\""+id +"\","
          + "\"total_amount\":\""+sumMoney +"\","
          + "\"subject\":\""+ "    " +"\","
          + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");
      //  
      String result;
      //       
      result = alipayClient.pageExecute(alipayRequest).getBody();
      //System.out.println("*********************
:"+result); return result; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } }
이것 은 설정 클래스 에 설 치 된 점프 경로 입 니 다.스스로 업 무 를 작성 할 수 있 습 니 다.

 @RequestMapping("alipay-callback-return-sult")
  public String successResult(HttpServletRequest request, HttpServletResponse response){
  	//    request.getParameterMap()                        
    Map<String, String[]> parameterMap = request.getParameterMap();
    String[] out_trade_nos = parameterMap.get("out_trade_no");
    String id = out_trade_nos[0];
    //                
    return "redirect:/good/toPayFor";
  }
  @RequestMapping("alipay-callback-notify-url")
  public String failResult(HttpServletRequest request, HttpServletResponse response){
    Map<String, String[]> parameterMap = request.getParameterMap();
    String[] out_trade_nos = parameterMap.get("out_trade_no");
    String uuid = out_trade_nos[0];
    orderService.updateOrderInfo(uuid);
    return "redirect:/good/toPayFor";
  }
항목 을 실행 하고 요청 을 보 냅 니 다.다음 경로 로 이동 하 는 것 은 성공 을 의미 합 니 다.
결과 전시
在这里插入图片描述
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기