微信扫码支付~官方DEMO的坑~参数不能自定义

简介:

由于微信在校验参数时采用了“微信服务端”校验,它的参数是前期定义好的,所以用户不能自己添加自定义的参数,你可以把参数写在Attach字段时,作为它的附加参数。

参数和返回值定义如下:

    public class NotifyResult : ResultBase
    {
        public NotifyResult(ResultBuilder resultBuilder)
            : base(resultBuilder)
        { }
        /// <summary>
        /// 设备号
        /// </summary>
        public string Device_Info { get { return GetValue("device_info"); } }
        /// <summary>
        /// 用户标识
        /// </summary>
        public string OpenId { get { return GetValue("openid"); } }
        /// <summary>
        /// 是否关注公众号
        /// </summary>
        public bool Is_Subscribe { get { return GetBooleanValue("is_subscribe"); } }
        /// <summary>
        /// 交易类型
        /// </summary>
        public TradeType Trade_Type { get { return (TradeType)GetEnumValue<TradeType>("trade_type"); } }
        /// <summary>
        /// 付款银行
        /// </summary>
        public string Bank_Type { get { return GetValue("bank_type"); } }
        /// <summary>
        /// 总金额
        /// </summary>
        public int Total_Fee { get { return GetIntValue("total_fee"); } }
        /// <summary>
        /// 现金券金额
        /// </summary>
        public int Coupon_Fee { get { return GetIntValue("coupon_fee"); } }
        /// <summary>
        /// 货币种类  货币类型,符合 ISO 4217标准的三位字母代码,默认人民币:CNY
        /// </summary>
        public string Fee_Type { get { return GetValue("fee_type"); } }
        /// <summary>
        /// 微信支付订单号
        /// </summary>
        public string Transaction_Id { get { return GetValue("transaction_id"); } }
        /// <summary>
        /// 商户订单号
        /// </summary>
        public string Out_Trade_No { get { return GetValue("out_trade_no"); } }
        /// <summary>
        /// 商家数据包
        /// </summary>
        public string Attach { get { return GetValue("attach"); } }
        /// <summary>
        /// 支付完成时间
        /// </summary>
        public string Time_End { get { return GetValue("time_end"); } }
        /// <summary>
        /// 产品ID
        /// </summary>
        public string Product_Id { get { return GetValue("product_id"); } }
  
    }

基本这些已经够用了,如果你的业务需要其它信息(发到微信再发回来),直接写到Attach里即可。

统一的回调封装

下面代码是大叔Lind框架对微信模块的封装,体现了自定义参数的作用

     /// <summary>
        /// 微信回调
        /// </summary>
        public string WeixinNotify()
        {
            Lind.DDD.Logger.LoggerFactory.Instance.Logger_Info("微信Callback");
            WxPaymentConfig wxPaymentConfig = new WxPaymentConfig();
            WxPayImpl wxPayImpl = new WxPayImpl(wxPaymentConfig);

            string Msg = wxPayImpl.RecieveWxPayNotify((notify) =>
            {
                int projectId;
                int.TryParse(notify.Attach, out projectId);
                string fullName = Db.Project_Modules.Where(i => i.Id == projectId).FirstOrDefault().FullName;
                taskInfoProvider = Lind.DDD.Plugins.PluginManager.Resolve<ITaskInfoProvider>(fullName);

                taskInfoProvider.Pay_Callback(new PayCallbackParams
                {
                    OrderId = notify.Out_Trade_No,
                    TradeId = notify.Transaction_Id
                });
            }, (msg) =>
            {
            });
            return Msg;
        }

 本文转自博客园张占岭(仓储大叔)的博客,原文链接:微信扫码支付~官方DEMO的坑~参数不能自定义,如需转载请自行联系原博主。

目录
相关文章
|
7月前
|
小程序 JavaScript
【微信小程序】之顶部选项卡自定义tabs(不用mp-tabs扩展组件,太难用了)
【微信小程序】之顶部选项卡自定义tabs(不用mp-tabs扩展组件,太难用了)
|
7月前
|
小程序 JavaScript
【微信小程序】之自定义九宫格展示row-grid(每行显示三个)
【微信小程序】之自定义九宫格展示row-grid(每行显示三个)
|
7月前
|
小程序 JavaScript
【微信小程序】之自定义三宫格一行展示row-grid(简单数据看板)
【微信小程序】之自定义三宫格一行展示row-grid(简单数据看板)
|
2月前
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
490 1
|
5月前
|
小程序 开发者
【微信小程序-原生开发】实用教程05-首页(含自定义调试模式、插入图片、图文排版、底部留白、添加本地图片)
【微信小程序-原生开发】实用教程05-首页(含自定义调试模式、插入图片、图文排版、底部留白、添加本地图片)
61 0
|
2月前
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
65 0
微信小程序:自定义关注公众号组件样式
|
4月前
|
小程序 开发者
Taro@3.x+Vue@3.x+TS开发微信小程序,使用自定义tabBar
本文介绍了如何在Taro项目中实现自定义tabBar。首先,在`app.config.ts`中设置`custom: true`并配置`tabBar`。
143 0
Taro@3.x+Vue@3.x+TS开发微信小程序,使用自定义tabBar
|
4月前
|
前端开发 JavaScript API
微信公众号项目,实现微信支付(具体流程和参数)
微信公众号项目,实现微信支付(具体流程和参数)
|
4月前
|
缓存 JavaScript 前端开发
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)更新时间(2020-10-29)
|
6月前
|
小程序 安全
微信小程序自定义底部导航栏
微信小程序自定义底部导航栏