우선, WeChat의 문서와 데모에 대해 불만을 토로합시다. 중요한 단계 정보가 명확하게 강조되지 않았고, .net 데모가 성공적으로 실행되지 않았습니다.
1. WeChat QR 코드를 스캔하여 로그인하세요
2. WeChat PC 결제
이 환불 기능을 통과하는 데 여러 번 시도했습니다. 다음은 WeChat 결제 환불 기능의 개발 단계를 소개합니다.
1. 인증서를 다운로드하여 시스템으로 가져옵니다.
WeChat 환불에는 인증서가 필요하지 않습니다. 공식 데모에는 인증서가 있지만, 위챗 가맹점 플랫폼의 api 보안 칼럼에서 다운받아야 하는 인증서입니다. 공식 인증서 사용 예를 워드 문서로 보면 C#이라는 문구가 있습니다. 코드에서 apiclient_cert.p12 외에도 인증서를 사용하려면 운영 체제로 가져와야 합니다. 1. 코드에 사용됩니다. 2. 운영 체제로 가져옵니다. 두 가지 모두 필수입니다. .NET 버전은 2.0 이상이어야 합니다. 이전에는 이 두 단계를 모르고 너무 많은 시간을 낭비했습니다. 따라서 인증서를 먼저 다운로드하세요.
apiclient_cert.p12를 찾아 두 번 클릭하여 가져올 때 비밀번호를 입력하라는 메시지가 표시됩니다. 이 비밀번호는 가맹점 ID이며 다운로드한 인증서여야 합니다. 나만의 판매자 플랫폼. 그렇지 않으면 비밀번호 오류 메시지가 나타납니다.
public const string APPID = "wxf6dd794bcexxxx"; public const string MCHID = "xxxx"; public const string KEY = "xxxxx849ba56abbe56e05xxxxx"; public const string APPSECRET = "---"; //=======【证书路径设置】===================================== /* 证书路径,注意应该填写绝对路径(仅退款、撤销订单时需要) */ public const string SSLCERT_PATH = "/WxPayAPI/cert/apiclient_cert.p12"; public const string SSLCERT_PASSWORD = "131xxxx";위 SSLCERT_PASSWORD는 MCHID입니다. SSLCERT_PASSWORD 오류는 지정된 네트워크 비밀번호가 올바르지 않다는 메시지를 표시합니다.
public ActionResult DoRefund() { string result = Refund.Run("","131667780120trade_no", "1", "1"); return Content(result); }Refund 클래스 실행 방법:
/*** * 申请退款完整业务流程逻辑 * @param transaction_id 微信订单号(优先使用) * @param out_trade_no 商户订单号 * @param total_fee 订单总金额 * @param refund_fee 退款金额 * @return 退款结果(xml格式) */ public static string Run(string transaction_id, string out_trade_no, string total_fee, string refund_fee) { Logger.Info("Refund is processing..."); WxPayData data = new WxPayData(); if (!string.IsNullOrEmpty(transaction_id))//微信订单号存在的条件下,则已微信订单号为准 { data.SetValue("transaction_id", transaction_id); } else//微信订单号不存在,才根据商户订单号去退款 { data.SetValue("out_trade_no", out_trade_no); } data.SetValue("total_fee", int.Parse(total_fee));//订单总金额 data.SetValue("refund_fee", int.Parse(refund_fee));//退款金额 data.SetValue("out_refund_no", out_trade_no);//随机生成商户退款单号 data.SetValue("op_user_id", WxPayConfig.MCHID);//操作员,默认为商户号 WxPayData result = WxPayApi.Refund(data);//提交退款申请给API,接收返回数据 Logger.Info("Refund process complete, result : " + result.ToXml()); return result.ToPrintStr(); }Refund: 방법
/** * * 申请退款 * @param WxPayData inputObj 提交给申请退款API的参数 * @param int timeOut 超时时间 * @throws WxPayException * @return 成功时返回接口调用结果,其他抛异常 */ public static WxPayData Refund(WxPayData inputObj, int timeOut = 6) { string url = "https://api.mch.weixin.qq.com/secapi/pay/refund"; //检测必填参数 if (!inputObj.IsSet("out_trade_no") && !inputObj.IsSet("transaction_id")) { throw new WxPayException("退款申请接口中,out_trade_no、transaction_id至少填一个!"); } else if (!inputObj.IsSet("out_refund_no")) { throw new WxPayException("退款申请接口中,缺少必填参数out_refund_no!"); } else if (!inputObj.IsSet("total_fee")) { throw new WxPayException("退款申请接口中,缺少必填参数total_fee!"); } else if (!inputObj.IsSet("refund_fee")) { throw new WxPayException("退款申请接口中,缺少必填参数refund_fee!"); } else if (!inputObj.IsSet("op_user_id")) { throw new WxPayException("退款申请接口中,缺少必填参数op_user_id!"); } inputObj.SetValue("appid", WxPayConfig.APPID);//公众账号ID inputObj.SetValue("mch_id", WxPayConfig.MCHID);//商户号 inputObj.SetValue("nonce_str", Guid.NewGuid().ToString().Replace("-", ""));//随机字符串 inputObj.SetValue("sign", inputObj.MakeSign());//签名 string xml = inputObj.ToXml(); var start = DateTime.Now; Log.Debug("WxPayApi", "Refund request : " + xml); string response = HttpService.Post(xml, url, true, timeOut);//调用HTTP通信接口提交数据到API Log.Debug("WxPayApi", "Refund response : " + response); var end = DateTime.Now; int timeCost = (int)((end - start).TotalMilliseconds);//获得接口耗时 //将xml格式的结果转换为对象以返回 WxPayData result = new WxPayData(); result.FromXml(response); ReportCostTime(url, timeCost, result);//测速上报 return result; }프로덕션 환경에서 고유한 매개변수로 수정하는 것을 잊지 마세요. 매개변수가 정확하면 다음이 반환됩니다:
위 내용은 WeChat Pay 환불 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

드림위버 CS6
시각적 웹 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
