Wechat Red Envelopes의 사용은 이미 매우 넓습니다. 이 기사는 WeChat에서 빨간 봉투를 보내는 예를 소개합니다. 인증 된 공개 계정이 필요하며 WeChat 결제 및 판매자 플랫폼을 열고 현금 레드 엔벨로프 권한을 활성화 할 수 있습니다.
https://pay.weixin.qq.com 판매자 로그인 주소. 마케팅 센터에서 현금 빨간 패킷을보기로 선택하십시오.
https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?CHAPTER=13_1 공식 웹 사이트 문서 현금 빨간 봉투에 대한 문서 설명
먼저 몇 가지 간단한 테스트를 살펴 보겠습니다. 전제는 먼저 가맹점 플랫폼에서 재충전해야한다는 것입니다. 선불은 지원되지 않습니다. 이 기사는 WeChat Cash Red Envelope 인터페이스의 통화 및 구현 만 요약합니다. 특히, 자신의 비즈니스를 기반 으로이 인터페이스를 호출하는 방법을 구현해야합니다.
https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3 문서에 일반 빨간색 봉투에 대한 모든 설명이 있습니다. 통화에는 판매자 플랫폼에서 인증서가 있어야합니다.
필요한 매개 변수도 나열됩니다. 귀하의 필요에 따라 결정하십시오.
1. 자바는 빨간 봉투 물체를 캡슐화합니다
/*** 레드 엔벨로프 개체* @Author Xiao Shuai Shuai* @Date 2016-8-17 11:12:19 AM* @Open Source China http://my.oschina.net/xshuai*/public class redpack empacle serializable {private string sign; // 속성을 기반으로 생성 된 검증 개인 문자열 MCH_BILLNO; // 주문 번호 개인 문자열 mch_id; // 판매자 번호 개인 문자열 wxappid; // wechat appid private string send_name; // merchant name private string re_openid; // user openid private string thant_amount; // 지불 금액 private string total_num; // 빨간 봉투 수신자의 수 현금 레드 엔벨로프는 1 개인 문자열 만 소원이 될 수 있습니다. string nonce_str; // random string // 세트 생략}} 2. 필요한 도구 클래스 CreateBillNo는 가맹점 주문 번호를 생성하는 것입니다. 공식 웹 사이트 문서 요구 사항은 다음과 같습니다.
/*** Red Envelope Tool Class* @Author Xiao Shuai Shuai* @Date 2016-8-17 11:12:19 AM* @Open 소스 China http://my.oschina.net/xshuai*/public class redpackutil {/*** @param mch_id 상인* @param mch_id MCH_ID 상인* @param useriD useriD. String CreateBillNo () {// 구성 : MCH_ID+YYYYMMDD+10 자리 숫자는 하루 안에 반복 할 수없는 10 자리 숫자가 다음과 같습니다. simpledateformat df = 새로운 simpledateformat ( "yyyymmdd"); 문자열 nowtime = df.format (dt); int 길이 = 10; wxconstants.mch_id + nowtime + getrandomnum (길이); } / ** * 특정 숫자로 임의의 숫자를 생성 * @param 길이 * @return * / public static string getrandomnum (int length) {String val = ""; 랜덤 random = new random (); for (int i = 0; i <length; i ++) {val+= string.valueof (random.nextint (10)); } return val; }} 3. 이전 작업은 매우 간단하며 인증서와 판매자 번호가 필요합니다. 판매자 플랫폼에 금액이 있으면 현금 레드 엔벨로프 인터페이스를 테스트 할 수 있습니다.
redpack pack = new redpack (Null // 처음으로 비어 있습니다. Redpackutil.createbillNo () // 판매자 번호, "자신의 판매자 번호", "공식 계정의 Appid", "이름", "사용자의 개방형", "전송 금액은", RMB 1 "," ",", ",", "," " 이름 ","note ","random string ");
테스트에 서명을 제외하고는 비어 있습니다. 다른 모든 것은 채울 수 있습니다. 이제 우리는 서명 서명을 생성합니다. 팩 객체의 매개 변수에 따라 부호를 생성합니다.
특정 서명 알고리즘 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?Chapter=4_3 주소
https://pay.weixin.qq.com/wiki/tools/signverify/이 테스트 페이지에서 비교하여 암호화가 일관되는지 확인할 수 있습니다.
문자열 부호 = signature.getSign (pack); // 생성 된 서명기는 팩 객체에 포장되어 XML 형식으로 객체를 변환 xml 형식 문자열 xml = xmlutil.objtoxml (pack, redpack.class, "xml");
4. 빨간 패킷을 보내십시오
redpackservice service = new redpacservice (); 문자열 result = service.redpackorder (xml); // 요청에 의해 데이터가 성공 했습니까?
공개 클래스 RedpackService {/*** 빨간 패킷 인터페이스 주소*/개인 최종 정적 문자열 redp_order_path = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack"; / *** Red Packet* 인증서 필수* @param paramxml* @return*/ public static string redpackorder (String paramxml) {try {wxbaseService service = new WxbaseService (redp_order_path); return service.sendpost (paramxml); } catch (예외 e) {log.error (e.toString ()); } return null; }} /** * https * * @param url api 주소 * @param xmlobj xml data 객체를 통한 API Post XML 데이터로 이동 * @return API는 패키지의 실제 데이터를 반환합니다 * @throws keystoreException * @throws inecoverexception * @throws * @Throwscemeptece */ public String sendPost (문자열 URL, String PostDataxMl)는 ioException, keyStoreException, UnrecoverableKeyException, nosuchalgorithmexception, if (! hasinit) {init (); } 문자열 result = null; httppost httppost = 새로운 httppost (url); // xstream에 대한 이중 밑줄 버그를 해결 // xstream xstreamforrequestpostdata = new xstream ( "utf-8", new xml prientlylynamecoder ( "-_", "_")); // API에 제출 할 데이터 객체를 XML 형식 데이터로 변환하여 API에 게시물 // string postDataxml = XStreamForRequestPostData.toxml (xmlobj); util.log ( "API, Post의 과거 데이터는 :"); util.log (postdataxml); // UTF-8 인코딩이 사용되었음을 나타냅니다. 그렇지 않으면 API 서버 XML에 대한 중국어 텍스트를 성공적으로 식별 할 수 없습니다. httppost.addheader ( "content-type", "text/xml"); httppost.setentity (postentity); // requestor의 구성 httppost.setConfig (requestConfig)를 설정합니다. util.log ( "요청" + httppost.getRequestline ()); try {httpresponse response = httpclient.execute (httppost); httpentity entity = response.getentity (); 결과 = entityutils.tostring (엔티티, "UTF-8"); } catch (ConnectionPoolTimeOutException e) {log.e ( "http get tash connectionPoolTimeOutException (대기 시간 출력)"); } catch (ConnectTimeOutException e) {log.e ( "http get tash connecttimeoutException"); } catch (SockettimeOutException e) {log.e ( "http get tash sockettimeoutException"); } catch (예외 e) {log.e ( "http get tash exception"); } 마침내 {httppost.abort (); } 반환 결과; } 5. 반환 된 XML이 성공적입니다. 1 위안 만 재충전 했으므로 며칠 전에 테스트를 받고 보냈습니다. 따라서 다음 정보가 반환됩니다.
<xml> <return_code> <! [cdata [success]]> </return_code> <return_msg> <! 다시]]]]]>]> </return_msg> <result_code> <! _BILLNO> <! [CDATA [1371729102201629220149762756]> </mch_billno> <mch_id> <! Appid]]> </wxappid> <re_openid> <!
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.