1. Wechat 공식 문서 Wechat 지불 개발 프로세스 (공개 계정 지불)
먼저 WeChat Pay의 공식 문서의 개발 단계 섹션으로 이동하여 필요한 설정을 확인하겠습니다.
[이미지 업로드 실패 ... (Image-5EB825-1531014079742)]
WeChat 지불에는 높은 권한이 필요하므로 인증 된 서비스 계정 만 WeChat 결제 인터페이스를 사용할 수있는 권한을 가질 수 있습니다. 개인적으로 신청하기가 어렵 기 때문에 다른 친구로부터 계정을 빌려야합니다.
문서의 비즈니스 프로세스 부분에 와서 WeChat 결제 프로세스를 확인하십시오 (저는 여전히 매우 신중한 이해와 시청이 필요하다고 생각합니다.
그런 다음 WeChat 결제 인터페이스에 액세스하려면 많은 매개 변수를 전달해야합니다. 통합 단일을 참조하십시오
[이미지 업로드 실패 ... (Image-DF7051-1531014079742)]
위의 공식 WeChat 결제 문서를 확인한 후, 나는 당신이 이것에 대해 특정한 이해를 가져야한다고 생각하지만, 여전히 WeChat 지불의 개발이 매우 번거 롭다고 생각하므로 타사 SDK를 사용하여 개발할 것입니다.
2. WeChat 지불 타사 SDK 개발 (공공 계정 지불)
이것은 공식 계정에 대한 지불입니다. 우리는 최고의 지불 SDK를 사용합니다. 이 SDK는 PayRequest 및 PayResponse를 사용하여 요청 인터페이스 및 해당 결과를 캡슐화합니다. 동적으로 통과 해야하는 주요 매개 변수는 OpenID (사용자 고유 식별자) 및 OrderId입니다. 다음으로 개발 방법을 살펴 보겠습니다.
1. 구성
// wxpayh5config wxpayh5config = 새로운 wxpayh5config (); wxpayh5config.setAppid ( "xxxxx"); wxpayh5config.setappsecret ( "xxxxxxx"); wxpayh5config.setmchid ( "xxxxxx"); wxpayh5config.setmchkey ( "xxxxxxx"); wxpayh5config.setnotifyurl ( "http : // xxxxx"); // 지불 클래스, 모든 메소드는이 클래스에 있습니다. BestPayServiceImpl BestPayService = New BestPayServiceImpl (); BestPayService.setwxpayh5config (wxpayh5config);
2. 지불을 시작하십시오
PayRequest PayRequest = New PayRequest (); PayRequest.SetPayTyPeenum (BestPayTypeenum.wxpay_h5); PayRequest.SetOrderId ( "123456"); PayRequest.SetOrderName ( "WeChat 공개 계정 지불 주문"); PayRequest.SetOrderAmount (0.01); PayRequest.SetOpenID ( "OpenID_XXXXXX"); BestPayService.Pay (PayRequest);
3. 비동기 콜백
bestPayService.asyncNotify();
이것이 바로이 SDK가 WeChat 지불을 해결하기 위해 10 줄의 코드를 말하는 것입니다.
결제가 완료되면 WeChat은 지불 결과를 지불 XML 데이터로 반환합니다. 결제 결과 확인을 완료하려면이 데이터를 비동기 알림 URL (Notify_URL)으로 전달해야합니다 (서명 확인, 지불 상태 확인). SDK의 두 단계는 우리를 위해 이루어집니다. BestPayService.asyncnotify (NotifyData)로 전화하십시오. 확인을 완료 한 후 데이터를 WeChat에 반환해야합니다.
<xml> <return_code> <! [cdata [success]]> </return_code> <return_msg> <!
WeChat에게 확인이 완료되었다고 말하고 비동기 알림에 대한 요청을 보내지 마십시오.
프로젝트에 어떻게 통합하는지 아직 명확하지 않습니까? 문제가되지 않습니다. 예제 데모도 있습니다. 더 명확 할 수 있습니다.
3. 데모 실행
Demo URL은 https://github.com/pay-group/best-pay-demo입니다
우리의 메인 컨트롤러는 여기에 있습니다.
@controller @slf4jpublic class paycontroller {@autowired private bestpayserviceimpl bestpayservice; /*** 지불 시작*/@getMapping (value = "/pay") public modelandview pay (@requestparam ( "OpenId") String OpenID, map <String, Object> Map) {PayRequest 요청 = new PayRequest (); 랜덤 random = new random (); // 지불 요청 매개 변수 요청 .setPayTypeenum (bestPayTyPeenum.wxpay_h5); request.setOrderId (string.valueof (random.nextInt (1000000000)); request.setOrderAmount (0.01); request.setorderName ( "Best Payment SDK"); request.setopenid (OpenID); log.info ( "【intage payment】 request = {}", jsonutil.tojson (request)); PayResponse PayResponse = BestPayService.Pay (요청); log.info ( "【intage payment】 response = {}", jsonutil.tojson (payresponse)); map.put ( "PayResponse", PayResponse); 새로운 ModelAndView ( "Pay/Create", Map)를 반환합니다. }/*** 비동기 콜백*/@postmapping (value = "/notify") public modelandview notify (@requestbody string notifydata) 예외 {log.info ( "【async 콜백】 request = {}", notifyData); PayResponse 응답 = BestPayService.asyncNotify (NotifyData); log.info ( "【async 콜백】 응답 = {}", jsonutil.tojson (응답)); 새로운 ModelAndView ( "Pay/Success")를 반환합니다. }}직접 다운로드 할 수 있습니다. 그것이 어떻게 작동하는지 봅시다
프로젝트 설명
JDK 버전> 1.8에서 실행해야합니다
이 프로젝트는 SpringBoot 1.5.1을 사용하여 개발되었습니다
프로젝트 구조
SRC/MAIN/JAVA/COM/GITHUB/LLY835 님은 PayDemoApplication.java ├ ├얼사 .Java ├ ├ ├ 담가 ├ 담가 ├ 담가 ├ 담가 효료를 configConfig.java // 결제 키 구성 클래스 └ 커우 니어 └ 대 PayController.java //
실행 예제
실행하기 전에 키를 구성해야합니다. PayConfig.java를 참조하십시오.
명령을 실행하십시오
git 클론 https://github.com/pay-group/best-pay-democd 최고의 결석 ---demomvn clean packagejava -jar target/*. War
브라우저 액세스 http://127.0.0.1:8080/pay
요약
위는 편집자가 귀하에게 소개 한 Java 버전의 WeChat 공개 계정의 전체 지불 개발 프로세스입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 질문이 있으시면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다!