主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
红包功能简介:
1.当商家调用该接口时,他们通过指定发送对象和发送金额来分发红包。这种方式可以让商家灵活适用于各种丰富的活动场景。
2.领取红包后,用户的资金直接进入微信零钱,避免了复杂的领奖过程,为用户带来了微信支付的流畅体验。
现金红包官方网站文件地址:coupon.php https://pay.weixin.qq.com/wiki/doc/API/tools/cash?第13章_1
你需要一个证书来调用现金红包接口。请到商家平台下载证书。
详细证书官网介绍:coupon.php https://pay.weixin.qq.com/wiki/doc/API/tools/cash?第=4_3章
因为发充现金红包是要从商家平台的余额中扣钱的,所以商家平台的账户余额必须有足够的余额。
以下是调用红包接口的详细代码:1。签名的MD5加密类:
/////MD 5 util helper的摘要描述。///public class MD 5 util helper { public MD 5 util helper(){///todo:在此处添加构造函数逻辑//}////获取大写的MD5签名结果///////public static string Get MD5(严谨性pstr,stringer charset){ stringer str;m D5 cryptoserviceprovider M5 = new m D5 cryptoserviceprovider();//创建md5对象byte【】input bye;byte【】输出再见;//使用GB2312编码将字符串转换为字节数组。请尝试{input bye = encoding。getencoding(字符集)。getbytes(encypstr);} catch(Exception ex){ input bye = Encoding。get encoding(“GB 2312“)。GetBytes(encypStr);}输出再见= m5。compute hash(input bye);retStr =系统。bit converter . ToString(output bye);retStr = retStr。替换(“-”,““)。ToUpper();返回retStr}}2.处理参数的类:
public class request handler { public request handler(HttpContext HttpContext){ Parameters = new Hashtable();这个。HttpContext = httpContext??HttpContext。当前;}/////key ///私有字符串密钥;受保护的HttpContext/////请求的参数//protectedhashtable参数;/////debug info ///私有字符串debug info/////初始化函数///public virtual void init(){ }/////获取调试信息////公共字符串getdebug info(){ return debug info;}/////获取密钥////publicstringgetkey(){ return key;}/////设置密钥////public void setkey(string key){ this . key = key;}/////设置参数值/////public void设置参数(字符串参数,字符串参数值){if(参数!= null &&参数!=““){ if(参数。包含(参数)){参数。Remove(参数);}参数。Add(参数,参数值);} }////创建md5摘要。规则为:按参数名a-z排序,空值参数不参与签名////参数名///参数值/// key和value通常用于填充最后一组参数///公共虚拟字符串createmd 5 sign(string key,string value){ StringBuilder sb = new StringBuilder();ArrayList akeys =新的ArrayList(参数。钥匙);阿基斯。sort();foreach(akeys中的字符串k){ string v =(string)Parameters【k】;if (null!= v &&“。比较一下!= 0 &&“符号”。compare to(k)!= 0 & &“key”。compare to(k)!= 0){ sb。append(k+“=“+v+“&“;} } sb。append(key+“=“+value);字符串符号= MD5UtilHelper。get MD5(sb。ToString()、GetCharset())。ToUpper();返回标志;}/////Output XML////public string parse XML(){ StringBuilder sb = New StringBuilder();某人(somebody的简写)追加(““);foreach(参数中的字符串k。keys){ string v =(string)参数【k】;if(Regex。伊斯玛奇(@"^[0-9.诉】$“){ sb。append(““+v+“);} else { sb。追加(““);} } sb。追加(““);归还某人。ToString();}/////设置调试信息////public void设置调试信息(字符串调试信息){this。调试信息=调试信息;}公共哈希表getall parameters(){ return this。参数;}受保护的虚拟字符串GetCharset(){ return this。HttpContext . request . content encoding . body name;} }3.调用装满现金的红包处理类:
/// //企业号微信支付接口//Public static class tenpay { # Region企业向用户发送红包////用于企业向个人微信用户发送红包////目前支持向指定微信用户的openid个人发送红包// /// apiclient_cert.p12证书的密码为商户号///微信支付需要post的xml数据的证书的物理位置// apiclient_cert.p12(例如:E:\projects\ documents \微信商户平台证书\商户TIME _ OUT){ var URL format =“https://API . mch . weixin . QQ . com/mmpaymkttransfers/sendredpack“;string cert = certPathServicePointManager。ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);x509 certificate 2 cer = new x509 certificate 2(cert,certPassword,X509KeyStorageFlags。persist key set | x509 keystorageflags。MachineKeySet);var formDataBytes = data == null?新字节【0】:编码。UTF8 . GetBytes(data);memory stream ms = new memory stream();ms . Write(formDataBytes,0,form data bytes。长度);Seek女士(0,SeekOrigin。开始);//设置指针读取位置http webrequest =(http webrequest)webrequest . create(URL格式);请求。client certificates . Add(cer);请求。method =“POST“;请求。超时=超时;请求。user agent =“Mozilla/5.0(Windows NT 6.1;wow 64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/31 . 0 . 1650 . 57 Safari/537.36“;#区域输入二进制流if(ms!= null){ ms . Position = 0;//直接写入stream request stream = request . getrequest stream();byte【】buffer =新字节【1024】;int bytes read = 0;while((bytes Read = ms . Read(buffer,0,buffer。长度)!= 0){ request stream。write(buffer,0,bytes read);} ms . Close();//关闭文件访问} # end region http webresponse =(http webresponse)request . getresponse();使用(Stream responseStream = response。GetResponseStream()){ using(StreamReader myStreamReader = new StreamReader(responseStream,Encoding。get encoding(“ut F-8“))){ string retString = myStreamReader。ReadToEnd();返回retString} } }私有静态bool CheckValidationResult(对象发送方,X509Certificate证书,X509Chain链,SslPolicyErrors错误){ if(errors = = SslPolicyErrors。None)返回true返回false} #endregion }4。调用现金红包接口。
#地区发红包boolfalls = false//记录发送红包是否成功string xmlResult = null//充钱红包接口返回的XML字符串cert path = null;//证书在服务器中的物理位置string data = null//调用充现金红包接口所需的数据try{ //创建支付响应对象request handler package eq handler = New request handler(null);//初始化packageReqHandler。init();string nonceStr = TenPayV3Util。getnon centr();//Timestamp//设置包顺序参数packagereqhandler.set参数(“nonce _ str”,nonce str);//随机字符串,长度不超过32位packageqhandler.set参数(“mch _ billno“,system。configuration . configuration manager . appsettings【“tenpay v3 _ MC hid“】+model . journal number);//商家的订单号(每个订单号必须唯一)由mch_id+yyyymmdd+10位数字组成,这些数字在一天内不能重复。该接口支持根据商家订单号重新输入,超时可再次调用。packageReqHandler。set parameter(“mch _ id“,系统。configuration . configuration manager . appsettings【“tenpay v3 _ MC hid“】);//微信支付分摊的商户号:packagereqhandler . set parameter(“wxappid“,system。configuration . configuration manager . appsettings【“tenpay v3 _ appid“】);//微信分配的公共帐户ID(企业编号corpid为appId)。所有通过接口传入的APPid都应该是微信官方账号的APPid(在mp.weixin.qq.com中申请),而不是app的APPid(在open.weixin.qq.com中申请)。packagerqhandler . set parameter(“send _ name“,“test“);//商户名称packagereqhandler . set parameter(“re _ OpenID“,model . bankcard);//用户openid接受用户的OpenID packageqhandler。设置参数(“总量”,转换。Toint32((十进制)(模型。金额* 1亿)。tostring(culture info。wxappid下的固定区域性);//付款金额单位为packagereqhandler.set参数(“total _ num“,“1“);packagereqhandler发出的红包总数。设置参数(“许愿”、“测试红包”);//红包问候packagereqhandler . set parameter(“client _ IP“,httpcontext . current . request . userhostaddress);//Ip地址packagereqhandler . set parameter(“act _ name“,“测试红包“);//活动名称packagereqhandler . set parameter(“remark”、“测试红包”);//备注String Sign = packagereqhandler。创建Md5Sign(“密钥”,系统。configuration . configuration manager . appsettings【“tenpay v3 _ key“】);packageReqHandler。set parameter(“sign”,符号);//签名数据= packagereqhandler . parse XML();certPath =服务器。MapPath(“~/“)+System。configuration . configuration manager . appsettings【“cert path“】;XML result = Sendredpack(data,System。configuration . configuration manager . appsettings【“tenpay v3 _ MC hid“】,cert path);var res = XDocument。parse(XML result);string return _ code = RES . Element(“XML“)。元素(“return_code“)。价值;如果(“成功”。equals(return _ code)){ string result _ code = RES . Element(“XML“)。元素(“结果代码”)。价值;如果(“成功”。equals(result _ code)){ fals = true;} } } catch(exception异常){} # endregion注意:证书所在的文件夹具有权限,IIS必须具有操作该文件夹的权限。
相关文章:
Php微信微信官方账号自动发送红包api,PHP公共红包API。
为微信微信官方账号红包接口开发PHP和CA证书时出错。请访问微信支付商户平台下载证书。
相关视频:
微信微信官方账号前段-php微信界面开发实操项目视频教程聊天机器人
以上就是微信微信官方账号开发的详细内容:商家如何给用户发红包。更多详情请关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
本文由主机参考刊发,转载请注明:微信微信官方账号开发:商家给用户发红包的一个例子。 https://zhujicankao.com/104501.html
评论前必须登录!
注册