咩呀咩鸭 發表於 2022-7-14 09:41:00

.net6 使用Senparc开发小程序配置

<p>1.添加引用</p>
<p><img src="https://img2022.cnblogs.com/blog/2126575/202207/2126575-20220714093342306-1937232722.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>2.添加配置文件</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)">&lt;summary&gt;</span>
    <span style="color: rgba(128, 128, 128, 1)">///</span><span style="color: rgba(0, 128, 0, 1)"> 微信
    </span><span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)">&lt;/summary&gt;</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">class</span><span style="color: rgba(0, 0, 0, 1)"> WeChat
    {
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 小程序</span>
      <span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">string</span> WxOpenAppId { <span style="color: rgba(0, 0, 255, 1)">get</span>; <span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">; }
      </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">string</span> WxOpenAppSecret { <span style="color: rgba(0, 0, 255, 1)">get</span>; <span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">; }
      </span><span style="color: rgba(128, 128, 128, 1)">///</span><span style="color: rgba(0, 128, 0, 1)">/ 微信支付</span>
      <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">public string TenPayV3_AppId { get; set; }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">public string TenPayV3_AppSecret { get; set; }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">public string TenPayV3_MchId { get; set; }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">public string TenPayV3_Key { get; set; }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">public string TenPayV3_CertPath { get; set; }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">public string TenPayV3_CertSecret { get; set; }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">public string TenPayV3_TenpayNotify { get; set; }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">public string TenPayV3_RechargeTenpayNotify { get; set; }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">public string TenPayV3_RefundNotify { get; set; }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">public string TenPayV3_RechargeRefundNotify { get; set; }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">public string TenPayV3_WxOpenTenpayNotify { get; set; }</span>
      <span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)">&lt;summary&gt;</span>
      <span style="color: rgba(128, 128, 128, 1)">///</span><span style="color: rgba(0, 128, 0, 1)"> 是否是开发环境
      </span><span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)">&lt;/summary&gt;</span>
      <span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">string</span> IsDevelopment { <span style="color: rgba(0, 0, 255, 1)">get</span>; <span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">; }
    }</span></pre>
</div>
<p>&nbsp;</p>
<p>3.在appsetting.jso里面配置参数</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)"> "WeChat": {
    // 小程序
    "WxOpenAppId": "",
    "WxOpenAppSecret": ""
    ////微信支付
    //"TenPayV3_AppId": "", //商户平台绑定了微信小程序就可以直接用这个
    //"TenPayV3_AppSecret": "", //商户平台绑定了微信小程序就可以直接用这个
    //"TenPayV3_MchId": "", //
    //"TenPayV3_Key": "", //
    //"TenPayV3_CertPath": "", //(新)支付证书物理路径,如:D:\\cert\\apiclient_cert.p12
    //"TenPayV3_CertSecret": "", //(新)支付证书密码(原始密码和 MchId 相同)
    //"TenPayV3_TenpayNotify": "https://river.runtoinfo.com/agr/api/TenPayV3/PayNotifyUrl",
    ////http://YourDomainName/TenpayV3/PayNotifyUrl
    ////如果不设置TenPayV3_WxOpenTenpayNotify,默认在 TenPayV3_TenpayNotify 的值最后加上 "WxOpen"
    //"TenPayV3_WxOpenTenpayNotify": "https://river.runtoinfo.com/agr/api/TenPayV3/PayNotifyUrlWxOpen" //http://YourDomainName/TenpayV3/PayNotifyUrlWxOpen
}</span></pre>
</div>
<p>&nbsp;</p>
<p>4.配置program</p>
<div class="cnblogs_code">
<pre></pre>
<p><br>builder.Services.AddMemoryCache();</p>
<pre><span style="color: rgba(0, 128, 0, 1)"><br>//</span><span style="color: rgba(0, 128, 0, 1)">微信</span>
<span style="color: rgba(0, 0, 0, 1)">
builder.Services.AddSenparcGlobalServices(builder.Configuration)</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Senparc.CO2NET 全局注册</span>
                   .AddSenparcWeixinServices(builder.Configuration);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Senparc.Weixin 注册
                                                                  </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">添加 微信支付api证书
                                                                  </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">var mac_id = builder.Configuration["WeChat:TenPayV3_MchId"];
                                                                  </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">builder.Services.AddCertHttpClient(mac_id + "_", mac_id, AppDomain.CurrentDomain.BaseDirectory + "/wwwroot/" + builder.Configuration["WeChat:TenPayV3_CertPath"]);</span>


<span style="color: rgba(0, 0, 255, 1)">var</span> senparcSetting = builder.Services.BuildServiceProvider().GetRequiredService&lt;IOptions&lt;SenparcSetting&gt;&gt;<span style="color: rgba(0, 0, 0, 1)">();

IRegisterService register </span>= RegisterService.Start(senparcSetting.Value).UseSenparcGlobal();<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 启动 CO2NET 全局注册,必须!</span>

<span style="color: rgba(0, 0, 255, 1)">var</span> senparcWeixinSetting = builder.Services.BuildServiceProvider().GetRequiredService&lt;IOptions&lt;SenparcWeixinSetting&gt;&gt;<span style="color: rgba(0, 0, 0, 1)">();
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">register.UseSenparcWeixin(senparcWeixinSetting.Value, senparcSetting.Value);</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">微信全局注册,必须!</span>
register.UseSenparcWeixin(senparcWeixinSetting.Value, weixinRegister =&gt;<span style="color: rgba(0, 0, 0, 1)">
{
    </span><span style="color: rgba(0, 0, 255, 1)">#region</span> 微信相关配置

    <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> 微信配置开始
    *
    * 建议按照以下顺序进行注册,尤其须将缓存放在第一位!
    </span><span style="color: rgba(0, 128, 0, 1)">*/</span>

    <span style="color: rgba(0, 0, 255, 1)">#region</span> 微信缓存(按需,必须放在配置开头,以确保其他可能依赖到缓存的注册过程使用正确的配置)
    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">注意:如果使用非本地缓存,而不执行本块注册代码,将会收到“当前扩展缓存策略没有进行注册”的异常
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> DPBMARK_END

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 微信的 Memcached 缓存,如果不使用则注释掉(开启前必须保证配置有效,否则会抛错)    -- DPBMARK Memcached
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">if (UseMemcached(senparcSetting.Value, out _))
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">{
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">    app.UseEnyimMemcached();
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">    weixinRegister.UseSenparcWeixinCacheMemcached();
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">}                                                                                     </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> DPBMARK_END</span>

    <span style="color: rgba(0, 0, 255, 1)">#endregion</span>


    <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> 微信配置结束 </span><span style="color: rgba(0, 128, 0, 1)">*/</span>

    <span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
});</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">微信全局注册,必须!
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">注册 Token容器 应用凭证</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> con = AccessTokenContainer.RegisterAsync(builder.Configuration[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WeChat:WxOpenAppId</span><span style="color: rgba(128, 0, 0, 1)">"</span>], builder.Configuration[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WeChat:WxOpenAppSecret</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]);
con.Wait();<br></span></pre>
</div>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <p>本文来自博客园,作者:吃兔子的萝卜7,转载请注明原文链接:https://www.cnblogs.com/kangsir7/p/16476463.html</p><br><br>
来源:https://www.cnblogs.com/kangsir7/p/16476463.html
頁: [1]
查看完整版本: .net6 使用Senparc开发小程序配置