메시지를 남기고 전달해 주셔서 감사합니다.
WeChat 속도 개발 기사 시리즈: 여기를 클릭하세요
이전 기사에서는 WeChat 결제를 소개했습니다. 공식 계좌 결제, WeChat 스캔 코드 결제, 카드 결제, WeChat 결제
이 기사에서는 WeChat 가맹점의 결제 도구인 현금 빨간 봉투에 대해 설명합니다
[공문서]
1.현금빨간봉투 권한 활성화
사용중 현금빨간봉투를 받기 전, 현금빨간봉투 기능을 활성화해주세요. 작업 경로: [WeChat Pay 가맹점 플랫폼에 로그인——>제품 센터——>Cash Red Envelope——>활성화].
2. API인증서
판매자가 WeChat Red Packet 인터페이스를 호출하면 서버에서 인증서 확인을 수행합니다. 가맹점 플랫폼 증명서
이렇게 많은 인증서에 어떤 것을 사용해야 하는지 궁금하신가요? 개발 언어와 관련이 있나요?
어떤 언어가 어떤 인증서를 사용하고 어떻게 사용하나요? 证书说明.txt
내용은 다음과 같습니다. >3. 충전
현금 레드 패킷을 발행하기 전에 충분한 자금이 있는지 확인하십시오. 부족하다면 보충해주세요. 운영 경로: [가맹점 플랫폼 로그인 -> 계정 센터 -> 자금 관리 -> 충전]
빨간 봉투 1개의 평균 금액은 1.00위안에서 200.00위안 사이여야 합니다
현금빨간봉투-충전.png
현재 지정된 WeChat의 openid를 지원합니다. 사용자 지정된 금액의 빨간 봉투를 배포합니다. (openid를 얻으려면 앞서 작성한 글을 참고하세요: 위챗 공개 계정의 급속한 발전을 통한 사용자 정보 획득 권한
5. 관련 매개변수 설정
및 빨간 봉투 관련 매개변수[주로 보안 측면: IP 바인딩, 사용자 도용 방지] 페이지에서 독립적으로 설정 및 변경할 수 있습니다.
작업 경로는 다음과 같습니다. [가맹점 플랫폼에 로그인——>제품 센터——>현금 빨간 패킷——>제품 설정] (참고: "제품 설정" 작동 버튼은 현금 빨간 봉투 기능을 활성화한 후에만 나타납니다.)
다음 매개변수를 설정하고 변경할 수 있습니다:
현금 빨간 봉투 설정 매개변수.png
3. 스와이프 방지 수준: 스와이프 방지는 WeChat 위험 제어를 의미합니다. 위챗 계정, 좀비 계정, 머신 계정 등을 차단할 수 있습니다. 스와이프 방지 수준은 스와이프 방지 강도를 제어합니다. 4. 동시에 빨간 봉투 금액 변경도 신청할 수 있지만, >현금 빨간 봉투 카테고리
현금 빨간 봉투는 두 가지 카테고리로 나뉩니다.
1. 일반 빨간 봉투 2. 핵분열 빨간 봉투 [공식 문서]
현금 빨간 봉투 보내기
1. 일반 빨간 봉투 보내기 인터페이스
欢迎使用微信支付! 微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 证书属于敏感信息,请妥善保管不要泄露和被他人复制。 不同开发语言下的证书格式不同,以下为说明指引: 证书pkcs12格式(apiclient_cert.p12) 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 部分安全性要求较高的API需要使用该证书来确认您的调用身份 windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) 证书pem格式(apiclient_cert.pem) 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem 证书密钥pem格式(apiclient_key.pem) 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem CA证书(rootca.pem) 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用로그인 후 복사2. 핵분열 빨간색 봉투 전송 인터페이스
private static String sendRedPackUrl = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack"; /** * 发送红包 * @param params 请求参数 * @param certPath 证书文件目录 * @param partner 证书密码 * @return {String} */ public static String sendRedPack(Map<String, String> params, String certPath, String partner) { return HttpUtils.postSSL(sendRedPackUrl, PaymentKit.toXml(params), certPath, partner); }
1. 일반 빨간색 봉투com.javen.weixin.api.RedPackApi.java
private static String sendGroupRedPackUrl = "api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack"; /** * 发送裂变红包 * @param params 请求参数 * @param certPath 证书文件目录 * @param partner 证书密码 * @return {String} */ public static String sendGroupRedPack(Map<String, String> params, String certPath, String partner) { return HttpUtils.postSSL(sendGroupRedPackUrl, PaymentKit.toXml(params), certPath, partner); }
/** * 发送普通红包 * @param request 获取IP * @param total_amount 付款现金(单位分) * @param total_num 红包发放总人数 * @param wishing 红包祝福语 * @param act_name 活动名称 * @param remark 备注 * @param reOpenid 用户openid * @param partner 商户号 * @param wxappid 公众账号appid * @param sendName 商户名称 * @param paternerKey 商户签名key * @param certPath 证书路径 * @return */ public static boolean sendredpack(HttpServletRequest request,String total_amount,String total_num,String wishing,String act_name,String remark,String reOpenid,String partner,String wxappid,String sendName,String paternerKey,String certPath) { // 商户订单号 String mchBillno = System.currentTimeMillis() + ""; String ip = IpKit.getRealIp(request); Map<String, String> params = new HashMap<String, String>(); // 随机字符串 params.put("nonce_str", System.currentTimeMillis() / 1000 + ""); // 商户订单号 params.put("mch_billno", mchBillno); // 商户号 params.put("mch_id", partner); // 公众账号ID params.put("wxappid", wxappid); // 商户名称 params.put("send_name", sendName); // 用户OPENID params.put("re_openid", reOpenid); // 付款现金(单位分) params.put("total_amount", total_amount); // 红包发放总人数 params.put("total_num", total_num); // 红包祝福语 params.put("wishing", wishing); // 终端IP params.put("client_ip", ip); // 活动名称 params.put("act_name", act_name ); // 备注 params.put("remark", remark); //创建签名 String sign = PaymentKit.createSign(params, paternerKey); params.put("sign", sign); String xmlResult = RedPackApi.sendRedPack(params, certPath, partner); Map<String, String> result = PaymentKit.xmlToMap(xmlResult); log.warn(JsonKit.toJson(result)); //此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 String return_code = result.get("return_code"); //业务结果 String result_code = result.get("result_code"); if (StrKit.isBlank(return_code) || !"SUCCESS".equals(return_code)) { return false; } if (StrKit.notBlank(result_code) && "SUCCESS".equals(result_code)) { return true; } return false; }
com.javen.weixin.api.RedPackApi.java
빨간 봉투 데모 보내기/** * 发送裂变红包 * @param partner * @param wxappid * @param sendName * @param reOpenid * @param total_amount * @param total_num * @param wishing * @param act_name * @param remark * @param paternerKey * @param certPath * @return */ public static boolean sendGroupRedPack(String partner, String wxappid, String sendName, String reOpenid, String total_amount, String total_num, String wishing, String act_name, String remark, String paternerKey, String certPath){ // 商户订单号 String mchBillno = System.currentTimeMillis() + ""; Map<String, String> params = new HashMap<String, String>(); // 随机字符串 params.put("nonce_str", System.currentTimeMillis() / 1000 + ""); // 商户订单号 params.put("mch_billno", mchBillno); // 商户号 params.put("mch_id", partner); // 公众账号ID params.put("wxappid", wxappid); // 商户名称 params.put("send_name", sendName); // 用户OPENID params.put("re_openid", reOpenid); // 付款现金(单位分) params.put("total_amount", total_amount); // 红包发放总人数 params.put("total_num", total_num); //红包金额设置方式 params.put("amt_type", "ALL_RAND"); // 红包祝福语 params.put("wishing", wishing); // 活动名称 params.put("act_name", act_name ); // 备注 params.put("remark", remark); //创建签名 String sign = PaymentKit.createSign(params, paternerKey); params.put("sign", sign); String xmlResult = RedPackApi.sendGroupRedPack(params, certPath, partner); Map<String, String> result = PaymentKit.xmlToMap(xmlResult); log.warn(JsonKit.toJson(result)); //此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 String return_code = result.get("return_code"); //业务结果 String result_code = result.get("result_code"); if (StrKit.isBlank(return_code) || !"SUCCESS".equals(return_code)) { return false; } if (StrKit.notBlank(result_code) && "SUCCESS".equals(result_code)) { return true; } return false; }
빨간 봉투 레코드 쿼리com.javen.utils.ReadPackUtils.java
[빨간 봉투 레코드 공식 문서 쿼리]
인터페이스 캡슐화
/** * 微信红包demo * @author Javen * 2016年5月28日 */ public class RedPackApiController extends Controller { private static String sendName = "Javen205"; //微信证书路径 private static String certPath = "/Users/Javen/Downloads/cert/apiclient_cert.p12"; //商户相关资料 String wxappid = PropKit.get("appId"); // 微信支付分配的商户号 String partner = PropKit.get("mch_id"); //API密钥 String paternerKey = PropKit.get("paternerKey"); /** * 发送普通红包 */ public void sendredpack() { boolean isSend = ReadPackUtils.sendredpack(getRequest(), "100", "1", "感谢您参加猜灯谜活动,祝您元宵节快乐!", "猜灯谜抢红包活动", "猜越多得越多,快来抢!", "o_pncsidC-pRRfCP4zj98h6slREw", partner, wxappid, sendName, paternerKey, certPath); renderJson(isSend); } /** * 发送裂变红包 */ public void sendGroupRedPack() { boolean isSend = ReadPackUtils.sendGroupRedPack(partner, wxappid, "天虹百货", "o_pncsidC-pRRfCP4zj98h6slREw", "100", "10", "感谢您参加猜灯谜活动,祝您元宵节快乐!", "猜灯谜抢红包活动", "猜越多得越多,快来抢", paternerKey, certPath); renderJson(isSend); } public void query() { String query = ReadPackUtils.query("10000098201411111234567890", partner, wxappid, paternerKey, certPath); renderJson(query); } }
private static String getHBInfo = "api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo "; /** * 根据商户订单号查询信息 * @param params 请求参数 * @param certPath 证书文件目录 * @param partner 证书密码 * @return {String} */ public static String getHbInfo(Map<String, String> params, String certPath, String partner) { return HttpUtils.postSSL(getHBInfo, PaymentKit.toXml(params), certPath, partner); }
[관련 추천]
1. com.javen.weixin.api.RedPackApi.java
WeChat 공개 계정 플랫폼 소스 코드 다운로드
com.javen.utils.ReadPackUtils.java
2.
3. WeChat Network King v3.4.5 WeChat Rubik's Cube 소스 코드의 고급 상용 버전
위 내용은 WeChat 공개 계정에서 현금 빨간 봉투를 개발하는 방법에 대한 예시 튜토리얼을 공유하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!