【移动支付】S1E03动联云音箱
其它工具类我放在“【移动支付】S1工具类”这篇文章中:https://www.cnblogs.com/runliuv/p/18761215。
调用代码:
private void btnPlayTest_Click(object sender, EventArgs e) { try { decimal dAmt = decimal.Parse(txtAmt.Text); string payWay = txtPayWay.Text; DlPlayUtil.Play(dAmt, payWay, txtYunSN.Text); } catch (Exception ex) { MessageBox.Show(ExpUtil.GED2(ex)); } }
工具类:
using CommonUtils; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WinFormBase.Utils2 { public class DlPlayUtil { #region 替换成你自己的签名参数 static string _access_key_id = "x"; static string _access_key = "x"; static string _url = "x"; //static string vp_device_id2 = "x"; #endregion public static void Play(decimal pay_amt,string pay_way,string vp_device_id) { #if DEBUG #endif StringBuilder scLog = new StringBuilder(); JsonSerializerSettings jsetting = new JsonSerializerSettings(); jsetting.DefaultValueHandling = DefaultValueHandling.Ignore; int total_fee = (int)(pay_amt * 100); string prefix = "收款"; //语音播报前缀 // 1 支付宝; 4 微信; 5 收款; if (pay_way == "WX") { prefix = "微信收款"; } else if (pay_way == "ALI") { prefix = "支付宝收款"; } DcMsgPlayReq req = new DcMsgPlayReq(); req.method = "push_msg"; req.access_key_id = _access_key_id; req.request_timestamp = DateTime.Now.ToString("yyyyMMddHHmmssfff"); req.request_id = Guid.NewGuid().ToString("N").Substring(0, 25); req.device_id = vp_device_id; req.Suffix1 = "01"; req.Suffix1Msg = prefix; req.Suffix2 = "00"; //req.Suffix2Msg = txtSuffix2Msg.Text; req.payAmount = total_fee.ToString();//实测最高:99999元。 req.push_template = "00"; req.nonce = Guid.NewGuid().ToString("N"); var dic1 = HashUtil.ModelToDic(req); var dic2 = HashUtil.AsciiDictionary(dic1); var linkStr = HashUtil.BuildQueryString(dic2); var sign = HashUtil.HmacSHA256_base64(linkStr, _access_key); req.sign = sign; string postJson = JsonConvert.SerializeObject(req, jsetting); string url = _url + "/api/push"; scLog.AppendLine("url:\r\n" + url); scLog.AppendLine("postJson:\r\n" + postJson); var rspStr = HttpUtil.HttpPostJson(url, postJson, 6); scLog.AppendLine("rspStr:\r\n" + rspStr); //GLog.WLog(scLog.ToString()); } } }