이번에는 사용자 인터페이스로의 엔터프라이즈 전송 활성화에 대해 안내해 드리겠습니다. 엔터프라이즈 사용자 인터페이스로의 전송 활성화를 위한 주의 사항은 무엇입니까?
WeChat 공식 계정 결제 API에는 그러한 인터페이스가 없습니다. 기업이 사용자에게 송금을 해야 하거나 사용자가 현금 인출을 허용하거나 빨간 봉투를 보내야 하는 경우 등이 필요합니다. 가맹점 플랫폼 상품센터에서 별도로 오픈 예정입니다.
활성화는 단 한 번의 클릭으로 매우 간단합니다. 다만, 사용자에게 이체를 지원하는 계정과 사용자로부터 결제를 받는 계정은 동일하지 않다는 점에 유의하시기 바랍니다. 이 기능을 충족하려면 먼저 Tenpay로 충전해야 합니다. -충전) .
2. 인증서 다운로드 인증서는 계정 센터 - API 보안에서 다운로드됩니다. 이제 휴대폰인증 코드와 판매자 플랫폼 로그인 비밀번호가 필요합니다. 다운로드 후 Windows에 설치하세요. 설치 비밀번호는 판매자 번호입니다.
설치 후 다음 단계의 코드에서 확인을 위해 인증서를 웹사이트 디렉토리에 배치하세요. 3. Transfer현재 WeChat에서 제공하는 데모에는 이 부분이 포함되어 있지 않습니다. 공식 데모를 기반으로 몇 가지 수정하겠습니다. 이전 예와 유사하게 매개변수를 조작하려면 WxPayData 개체를 사용해야 합니다. TransfersPay 객체를 정의합니다.public class TransfersPay { public string openid { get; set; } public int amount { get; set; } public string partner_trade_no { get; set; } public string re_user_name { get; set; } public string spbill_create_ip { get; set; } public WxPayData GetTransfersApiParameters() { WxPayData apiParam = new WxPayData(); apiParam.SetValue("partner_trade_no", partner_trade_no); apiParam.SetValue("openid", openid); apiParam.SetValue("check_name", "NO_CHECK"); apiParam.SetValue("amount", amount); apiParam.SetValue("desc", "提现"); apiParam.SetValue("spbill_create_ip", spbill_create_ip); apiParam.SetValue("re_user_name", re_user_name); return apiParam; } }
public static WxPayData Transfers(WxPayData inputData, int timeOut = 6) { var url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers"; inputData.SetValue("mch_appid", WxPayConfig.APPID);//公众账号ID inputData.SetValue("mchid", WxPayConfig.MCHID);//商户号 inputData.SetValue("nonce_str", WxPayApi.GenerateNonceStr());//随机字符串 inputData.SetValue("sign", inputData.MakeSign());//签名 string xml = inputData.ToXml(); var start = DateTime.Now; string response = HttpService.Post(xml, url, true, timeOut); // Portal.MVC.Logger.Info("WxPayApi"+ "UnfiedOrder response : " + response); var end = DateTime.Now; int timeCost = (int)((end - start).TotalMilliseconds); WxPayData result = new WxPayData(); result.FromXml(response); ReportCostTime(url, timeCost, result);//测速上报 return result; }
//是否使用证书 if (isUseCert) { string path = HttpContext.Current.Request.PhysicalApplicationPath; X509Certificate2 cert = new X509Certificate2(path + WxPayConfig.SSLCERT_PATH, WxPayConfig.SSLCERT_PASSWORD); request.ClientCertificates.Add(cert); Log.Debug("WxPayApi", "PostXml used cert"); }
[LoginValid] public ActionResult CashTransfers(string orderNumber) { //var order = new Order(){Amount = 1}; // var openid = "oBSBmwQjqwjfzQlKsFNjxFLSixxx"; var user = _workContext.CurrentUser; var order = _paymentService.GetOrderByOrderNumber(orderNumber); var transfer = new TransfersPay { openid = user.OpenId, amount = (int) order.Amount*100, partner_trade_no = order.OrderNumber, re_user_name = "stoneniqiu", spbill_create_ip = _webHelper.GetCurrentIpAddress() }; var data = transfer.GetTransfersApiParameters(); var result = WxPayApi.Transfers(data); return Content(result.ToPrintStr()); }
[LoginValid] public ActionResult CashTransfers(string orderNumber) { var user = _workContext.CurrentUser; var order = _paymentService.GetOrderByOrderNumber(orderNumber); if (string.IsNullOrEmpty(user.OpenId)) { return Json(new PortalResult("请用微信登录!")); } if (order == null || order.OrderState != OrderState.Padding) { return Json(new PortalResult("订单有误!")); } var transfer = new TransfersPay { openid = user.OpenId, amount = (int) order.Amount*100, partner_trade_no = order.OrderNumber, re_user_name = "stoneniqiu", spbill_create_ip = _webHelper.GetCurrentIpAddress() }; var data = transfer.GetTransfersApiParameters(); var result = WxPayApi.Transfers(data); if (result.GetValue("result_code").ToString() == "SUCCESS") { return Json(new PortalResult(true, "提现成功")); } return Json(new PortalResult(false, result.GetValue("return_msg").ToString())); }
public static WxPayData Transfers(WxPayData inputData, int timeOut = 30)
위 내용은 사용자 인터페이스로의 엔터프라이즈 전송 활성화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!