要集成微信支付,如果包名不一致就不能用同一个APP_ID是吗

代码是重构的,与之前的包名不一致,现在无法调起微信支付,api.sendReq()为true,该传的参数也传了。是不是还要在微信上注册一下重构的APP啊,用的APP_ID是上一个版本的

1个回答

刚好上个项目碰到你这样得需求,一个pad版一个手机版,同一个版本换包名你只需要去微信后台修改以下你这个应用包名就行了,app_id还是继续用之前的,不同版本就相当于两个应用了,希望能解决你的问题。

u010208471
一只小白程序员 谢谢
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
sdi就不能用toolbar吗?
sdi就不能用toolbar吗?要是可以的话怎么用呢?
微信支付和集成微信支付的坑
微信demo里面的测试接口用不了,没办法测了.想要跑起来,只要用他自带的签名就好了.不能用自己. 微信准备配置现在开始配置微信相关的东西吧 在微信开发平台注册好相关应用,交了该交的钞票.等到 你就可以开始测试你的微信支付代码了 应用签名用的是keyston的md5值是小写无冒号的 查看方式有keytool - list - key
微信支付的封装工具类,集成微信支付
1.前言 微信支付逻辑比较麻烦,这里附上微信支付的工具类,方便快速集成微信支付 2集成过程 1.集成lib到工程和一些配置和注意点 集成lib到工程不想做太多的废话详情看微信的官方文档 注意点 : (1).复制WXPayEntryActivity.java到项目工程 一定要放到根目录下的wxapi包下 (2).千万不要...
集成微信支付
1.build.gradle文件中增加: compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+' 2. 代码目录下增加如下类(WXPayEntryActivity.java,注意要放在wxapi包下): package com.test.wxapi; import android.app.Activity; impo...
微信支付集成
首先,先看微信支付官方文档,根据文档来看。先在Info这里设置下AppId 然后添加微信支付所需要的类库及SDK 然后就该注册了,在AppDelegate内注册微信- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //
微信支付的集成
为便于观察,需要添加哪些到AS中,需要先导入DEMO工程到eclipse中 1.导入jar包 2.清单文件声明权限和activity 清单文件AndroidManifest.xml中声明权限和activity:          android:name="net.sourceforge.simcpux.wxapi.WXPayEntryActivity"
不分配内存难道就不能用内存吗?
>>>>>> 我的迷惑,编译器到底想要什么样的信息,rn 何时它才非需要malloc来分配内存,rn比如 我们定义 int *a[10],b,c;rn a[0]=&b;a[1]=&c;rn a[2]=(int*)malloc(sizeof(int)*5);rn *a[0]=5;rnrn大家看,数组a的前两个元素不用分配内存,就象int a=10;rn int a[5];a[1]=2...等等一样自然,rn 直接写就好了,后面5个却分配了内存,为什么?rn 到底什么时候才真的需要动态分配,就是要用mallocrnrn>>>> 有关指针初始化,int a;int *p;rn p=&a;//rightrn rn 为什么如果是p=10就不对呢??这样不也是初始化吗?rn 比如那个做swap的函数,swap(int *p1,int *p2)rn int*temp;rn *temp=*p1;//有问题吗?系统自然会给rn *p1=*p2; temp有个地址,现在只用它所rn *p2=*temp; 的值就可以,temp的地址始终是rn 不变的,不知道具体多少没关系啊rnrn>>>>>>有关指针数组,rn 比如 char *argv[], 定义了一个数组的指针,每个指针都可以指向一个字符,rn 然后可以通过指针的运算得到一个字符串rn 那 int * a[], a中每个元素都可以指向一个整数,并且应该通过指针运算rn 也该得到它相邻的整数啊,可是结果行不通,rn 为什么?? c编译器并没有类型检查的
DB2 7.1不注册就不能用吗
注册失败rn无法启动DB2rn怎么办rn高手执教
集成支付宝要收费吗?
如果收费请问,是怎么收费个法?
iphone和android能用同一个服务器端吗?
想问下像微博那种程序,分两个平台的版本,他们的服务器端也做两个版本吗?还是就一个服务器端同两个平台的客户端交互?
同一个页面能用request接收吗
" onclick="titlelink"> <%# DataBinder.Eval(Container.DataItem,"game") %> 前台这样写的rn那么后台cs代码中的ONCLICK事件中能用request接收参数吗rn
aspx和ascx的cs源文件能用同一个吗
我看CS里只有rnpublic class login : System.Web.UI.UserControlrn和rnpublic class login : System.Web.UI.Pagern不同,但是里面的代码是完全一样的,有办法统一成一样用吗,不然又得重复写代码了,这样做是为了让客户可以自由定制想用哪种都可以
简述集成微信支付
原文链接: 1. 导入微信包 2.添加微信依赖的库 3.MRC的文件修改成ARC 方法:找到文件  -fno-objc-arc  添加这句话 要修改的有2个文件   一个是 pay.....   一个是 apiXml... 改好直接 command + B  编译一下。 成功往下进行 4.在appdelegate里面引入头文件,和协议 #im
集成支付宝,微信支付
使用支付宝进行一个完整的支付功能,大致有以下步骤: 1.把需要的文件都放在一个文件夹中拖入工程(方便查找以及下面成功添加路径) 2.添加库https://doc.open.alipay.com/doc2/detail.htm?spm=0.0.0.0.eYOWAT&treeId=59&articleId=103676&docType=1 3.header seach path中添加路径 4.
关于Android集成微信支付的过程
本来是不打算写关于微信支付的,网上有太多了,但是前些天一个哥们居然还问我微信支付怎么集成,所以准备做个记录。 以下内容是将微信支付的所有过程都放在在app端,这是不推荐的,实际中前几步由服务器来做比较安全些。当然,我这样写一个是为了展示微信支付的一个流程,二是服务器端哥们不愿写,老大让我全在客户端完成(汗一个),废话不多说了,进入正题。 我个人将集成微信支付的过程分成4个步骤: 微信官方api文
Android集成微信支付
自己也是第一次在项目中集成微信支付,所以中途遇到了一些问题,记录下来希望能帮助到其他小伙伴。 微信集成其实在解决完所有问题之后发现还是挺简单的,主要是官方文档给的东西不足以让我们很完整的去集成,中途查阅了很多其他小伙伴的博客才集成成功,由于我的项目中微信集成已经有一段时间了,所以没有能记录下对我有过帮助的博客地址,在此还是对那些坚持写博客帮助过我们的人表示感谢。 好了,切入正题。大家可以先看一
Android 微信支付集成过程
一、集成最新微信支付SDK过程 官网 https://pay.weixin.qq.com/wiki/doc/api/index.html APP支付 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_1 以下链接是当前可用链接(如若官方更新后请告知,感谢) 微信支付demo gradle版本 https://open.weix...
AndroidStudio-3.2.1(二十六)集成微信支付
根据微信官网的介绍,微信支付共有6种方式,本文介绍是APP支付。APP支付又称移动端支付,是商户通过在移动端应用APP中集成开放SDK调起微信支付模块完成支付的模式。 支付流程 1、用户在APP内选中商品或服务,点击支付。 2、APP将支付订单信息发送给APP后台进行处理。 3、APP后台将签名后的订单信息返回。 4、APP内调用微信支付接口发送支付请求。 5、请求成功,则唤起微信支付界面;如果失...
android 微信支付V3集成
下面是官方demo中的主acrivity,运行后先后点击“生成支付订单-生成APP微信支付参数-调起微信支付” 就是提示:rn微信支付结果:null;code=-1;rnrn有点疑惑 我在哪里设置商品名称和价格呢?怎么就支付了呢?rnrn本人小白 ,求大神赐教!rn[code=java]rnpackage com.ldkj.yaodian.customer;rnrnimport java.io.*;rnimport java.net.Inet4Address;rnimport java.net.InetAddress;rnimport java.net.NetworkInterface;rnimport java.util.*;rnrnimport android.util.Xml;rnimport android.widget.TextView;rnimport org.apache.http.NameValuePair;rnimport org.apache.http.message.BasicNameValuePair;rnrnimport android.app.Activity;rnimport android.app.ProgressDialog;rnimport android.os.AsyncTask;rnimport android.os.Bundle;rnimport android.util.Log;rnimport android.view.View;rnimport android.widget.Button;rnrnrnimport com.tencent.mm.sdk.modelpay.PayReq;rnimport com.tencent.mm.sdk.openapi.IWXAPI;rnimport com.tencent.mm.sdk.openapi.WXAPIFactory;rnrnimport org.xmlpull.v1.XmlPullParser;rnrn/**rn * 微信支付rn * @author 孟祥程rn *rn */rnrnpublic class PayActivity extends Activity rnrn private static final String TAG = "MicroMsg.SDKSample.PayActivity";rnrn PayReq req;rn final IWXAPI msgApi = WXAPIFactory.createWXAPI(this, null);rn TextView show;rn Map resultunifiedorder;rn StringBuffer sb;rn @Overridern protected void onCreate(Bundle savedInstanceState) rn super.onCreate(savedInstanceState);rn setContentView(R.layout.pay);rn show =(TextView)findViewById(R.id.editText_prepay_id);rn req = new PayReq();rn sb=new StringBuffer();rnrn msgApi.registerApp(Constants.APP_ID);rn //生成prepay_idrn Button payBtn = (Button) findViewById(R.id.unifiedorder_btn);rn payBtn.setOnClickListener(new View.OnClickListener() rn @Overridern public void onClick(View v) rn GetPrepayIdTask getPrepayId = new GetPrepayIdTask();rn getPrepayId.execute();rn rn );rn Button appayBtn = (Button) findViewById(R.id.appay_btn);rn appayBtn.setOnClickListener(new View.OnClickListener() rnrn @Overridern public void onClick(View v) rn sendPayReq();rn rn );rnrn //生成签名参数rn Button appay_pre_btn = (Button) findViewById(R.id.appay_pre_btn);rn appay_pre_btn.setOnClickListener(new View.OnClickListener() rnrn @Overridern public void onClick(View v) rn genPayReq();rn rn );rn rn rnrn rn /**rn 生成签名rn */rnrn private String genPackageSign(List params) rn StringBuilder sb = new StringBuilder();rn rn for (int i = 0; i < params.size(); i++) rn sb.append(params.get(i).getName());rn sb.append('=');rn sb.append(params.get(i).getValue());rn sb.append('&');rn rn sb.append("key=");rn sb.append(Constants.API_KEY);rn rnrn String packageSign = MD5.getMessageDigest(sb.toString().getBytes()).toUpperCase();rn Log.e("orion",packageSign);rn return packageSign;rn rn private String genAppSign(List params) rn StringBuilder sb = new StringBuilder();rnrn for (int i = 0; i < params.size(); i++) rn sb.append(params.get(i).getName());rn sb.append('=');rn sb.append(params.get(i).getValue());rn sb.append('&');rn rn sb.append("key=");rn sb.append(Constants.API_KEY);rnrn this.sb.append("sign str\n"+sb.toString()+"\n\n");rn String appSign = MD5.getMessageDigest(sb.toString().getBytes());rn Log.e("orion",appSign);rn return appSign;rn rn private String toXml(List params) rn StringBuilder sb = new StringBuilder();rn sb.append("");rn for (int i = 0; i < params.size(); i++) rn sb.append("<"+params.get(i).getName()+">");rnrnrn sb.append(params.get(i).getValue());rn sb.append("");rn rn sb.append("");rnrn Log.e("orion",sb.toString());rn return sb.toString();rn rnrn private class GetPrepayIdTask extends AsyncTask> rnrn private ProgressDialog dialog;rnrnrn @Overridern protected void onPreExecute() rn dialog = ProgressDialog.show(PayActivity.this, getString(R.string.app_tip), getString(R.string.getting_prepayid));rn rnrn @Overridern protected void onPostExecute(Map result) rn if (dialog != null) rn dialog.dismiss();rn rn sb.append("prepay_id\n"+result.get("prepay_id")+"\n\n");rn show.setText(sb.toString());rnrn resultunifiedorder=result;rnrn rnrn @Overridern protected void onCancelled() rn super.onCancelled();rn rnrn @Overridern protected Map doInBackground(Void... params) rnrn String url = String.format("https://api.mch.weixin.qq.com/pay/unifiedorder");rn String entity = genProductArgs();rnrn Log.e("orion",entity);rnrn byte[] buf = Util.httpPost(url, entity);rnrn String content = new String(buf);rn Log.e("orion", content);rn Map xml=decodeXml(content);rnrn return xml;rn rn rnrnrnrn public Map decodeXml(String content) rnrn try rn Map xml = new HashMap();rn XmlPullParser parser = Xml.newPullParser();rn parser.setInput(new StringReader(content));rn int event = parser.getEventType();rn while (event != XmlPullParser.END_DOCUMENT) rnrn String nodeName=parser.getName();rn switch (event) rn case XmlPullParser.START_DOCUMENT:rnrn break;rn case XmlPullParser.START_TAG:rnrn if("xml".equals(nodeName)==false)rn //实例化student对象rn xml.put(nodeName,parser.nextText());rn rn break;rn case XmlPullParser.END_TAG:rn break;rn rn event = parser.next();rn rnrn return xml;rn catch (Exception e) rn Log.e("orion",e.toString());rn rn return null;rnrn rnrnrn private String genNonceStr() rn Random random = new Random();rn return MD5.getMessageDigest(String.valueOf(random.nextInt(10000)).getBytes());rn rn rn private long genTimeStamp() rn return System.currentTimeMillis() / 1000;rn rn rnrnrn private String genOutTradNo() rn Random random = new Random();rn return MD5.getMessageDigest(String.valueOf(random.nextInt(10000)).getBytes());rn rn rnrn //rn private String genProductArgs() rn StringBuffer xml = new StringBuffer();rnrn try rn String nonceStr = genNonceStr();rnrnrn xml.append("");rn List packageParams = new LinkedList();rn packageParams.add(new BasicNameValuePair("appid", Constants.APP_ID));rn packageParams.add(new BasicNameValuePair("body", "APP pay test"));rn packageParams.add(new BasicNameValuePair("mch_id", Constants.MCH_ID));rn packageParams.add(new BasicNameValuePair("nonce_str", nonceStr));rn packageParams.add(new BasicNameValuePair("notify_url", "http://shenghuomofang.com"));rn packageParams.add(new BasicNameValuePair("out_trade_no",genOutTradNo()));rn packageParams.add(new BasicNameValuePair("spbill_create_ip",getPhoneIp()));rn packageParams.add(new BasicNameValuePair("total_fee", "1"));rn packageParams.add(new BasicNameValuePair("trade_type", "APP"));rnrnrn String sign = genPackageSign(packageParams);rn packageParams.add(new BasicNameValuePair("sign", sign));rnrnrn String xmlstring =toXml(packageParams);rn //解决body传中文报签名错误的问题,生成的xml请求参数转为字节数组后,用“ISO8859-1”编码格式进行编码为字符rn return new String(xmlstring.getBytes(),"ISO8859-1");rnrn catch (Exception e) rn Log.e(TAG, "genProductArgs fail, ex = " + e.getMessage());rn return null;rn rn rnrn rn private void genPayReq() rnrn req.appId = Constants.APP_ID;rn req.partnerId = Constants.MCH_ID;rn req.prepayId = resultunifiedorder.get("prepay_id");rn req.packageValue = "prepay_id="+resultunifiedorder.get("prepay_id");rn req.nonceStr = genNonceStr();rn req.timeStamp = String.valueOf(genTimeStamp());rnrnrn List signParams = new LinkedList();rn signParams.add(new BasicNameValuePair("appid", req.appId));rn signParams.add(new BasicNameValuePair("noncestr", req.nonceStr));rn signParams.add(new BasicNameValuePair("package", req.packageValue));rn signParams.add(new BasicNameValuePair("partnerid", req.partnerId));rn signParams.add(new BasicNameValuePair("prepayid", req.prepayId));rn signParams.add(new BasicNameValuePair("timestamp", req.timeStamp));rnrn req.sign = genAppSign(signParams);rnrn sb.append("sign\n"+req.sign+"\n\n");rnrn show.setText(sb.toString());rnrn Log.e("orion", signParams.toString());rnrn rn private void sendPayReq() rn rnrn msgApi.registerApp(Constants.APP_ID);rn msgApi.sendReq(req);rn rn rn public static String getPhoneIp() rn try rn for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) rn NetworkInterface intf = en.nextElement(); rn for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) rn InetAddress inetAddress = enumIpAddr.nextElement(); rn if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) rn // if (!inetAddress.isLoopbackAddress() && inetAddress rn // instanceof Inet6Address) rn return inetAddress.getHostAddress().toString(); rn rn rn rn catch (Exception e) rn rn return "127.0.0.1"; rn rnrnrnrnrnrnrnrn[/code]
iOS 集成微信支付
微信支付现在是移动支付领域一支不可忽视的力量,我们移动开发人员在开发app的时候,也不可避免的用到各种支付,支付宝支付我们用的最多了,我这里就不讲解了,我现在给大家讲解一个iOS微信支付,首先 我们需要在微信开放平台注册商户信息(记住是微信开放平台不是公众平台),微信开放平台支持的银行卡有限,所以在确定用微信支付的时候先看看,支不支持公司的银行卡,比如广大银行卡是不支持的。(支持的银行卡);
android_app开发微信支付集成
最近项目里面需要支付功能,boss一致决定用微信支付,所以在网上查了很多资料,说的不全,完了就找以前的同事指教。算是成功集成上去了。在这里做个总结记录。 1、在APP上集成微信支付,首先当然是当官网上去注册并获取到支付功能。这些不涉及到开发,官网上说的很详细,这里就不多做文章。获取到这些能力了就为开发提供了条件了。开发中会用到的就是平台给的APPID、APPsercet、以及商户平台上设置的
Android 集成微信支付V3
刚开始接触这个东西,感觉挺坑的,但是当你集成成功的时候,你会觉得他特别简单,希望能够帮到还在做微信支付的朋友们,有问题还望给指正。
快速集成微信支付和支付宝支付
本文介绍博主自己封装的一个微信支付和支付宝支付的library apppay_library:https://github.com/Mingwei360/apppay 本项目解决的问题仅限于最后的支付环节,即你告诉我多少钱,我带着这个多少钱的信息发起微信支付或者支付宝支付,仅需简单的配置信息,然后每次支付只需调用三句代码即可发起支付,封装了对订单信息的拼装,订单的签名等。不牵扯订单的处理,订单
android集成微信支付记录
android集成微信支付的那些事
iOS微信支付集成
支付宝和微信都是业界的老大哥,相信大家都有所觉得文档、SDK都是各种坑吧(纯粹吐槽而已),这是继上篇支付宝支付集成后接着的微信支付集成。
ios集成微信支付的小坑
最近项目中用到了微信支付。其实集成什么的都还不难,但是集成完了和后台测试怎么老是签名验证失败。真的是着急,安卓那边还没做好无法测试只能挨个拍坑。1.再阅读一遍微信文档按照他的来: 是这样子的。你再看他的API文档 他又说要提交一个appid说的也很明白就是应用id 但是SDK他提交的 PayReq 这个类里面并没有appid但是他有父类一个OpenID,这个奏是传说中的appid。好了总结一下,其...
android集成微信支付
这里分享下android端集成微信支付的步骤。一、首先到官网https://open.weixin.qq.com/创建一个应用,审核说是7天内。通过后获取AppID就可以进行愉快的开发了。二、基本步骤就是移动端拼接好后天需要的购物车信息,后台返回随机验证码以及第三方的商家号,生成订单。然后我们再通过随机验证码以及第三方的商家号,确认支付信息,获取微信支付需要的一些参数,进行支付就可以了。然后会有一个
支付宝,微信支付方式集成
支付宝集成对于一些刚出来的同学来说确实很头疼,因为没有公司的pid,也没有办法测试,但其实只要接触你就会发现,真的是很容易,有个朋友写了篇博客,我感觉是已经很详细了这里直接给出地址:支付宝集成接下来介绍一下微信支付的集成: 如果你去看微信支付的官方文档的话,会发现,很多坑,很多东西不明白什么意思,我们一点一点来:1.首先,你要去微信开放平台去注册应用,审核通过后会生成一个APPID,在【开放平台】
iOS集成微信支付功能
第一步:集成微信的SDK https://pay.weixin.qq.com/wiki/doc/api/index.html      点击进入 下载对应SDK或示例,最后可以看看示例程序 第二步:在Xcode中填写微信开放平台申请的Appid 第三步:在Appdelegate.m 中注册微信支付 和回调 #import "WXApi.h" 添
微信支付集成过程
一、获取AppId       需要到微信开放者平台(https://open.weixin.qq.com/)创建自己的应用,通过审核后,获取AppId。 二、集成微信支付的sdk      在Android Studio 环境中:        1> 在build.gradle文件中,添加如下依赖即可:     dependencies { // 包含统计功能 compile
使用AndroidStudio集成微信支付
讲解项目中应该如何集成微信支付
ios集成微信支付
本demo集成了微信支付,不过需要自己填写APP_ID,APP_SECRET,MCH_ID,PARTNER_ID等才可以使用,这些参数需要自己在微信开放平台配置。详细参考 http://blog.csdn.net/joonchen111/article/details/48287877 这篇博客。
Androidstudio集成微信支付
微信接入官方文档 1、添加依赖 //微信支付 compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+' 2、添加权限 &amp;lt;uses-permission android:name=&quot;android.permission.INTERNET&quot; /&amp;gt; &amp;lt;uses-permission android...
微信支付集成简介
移动支付目前在市场上风生水起,微信支付也逐渐成为人们消费的一大主力方式。今天对Android端微信支付的集成做一个简单的说明。
Android 支付宝和微信支付集成
支付宝支付-移动接口1. 商户签约审核1.1商户在b.alipay.com里进行产品签约;(其中,点击右上角的 ,可详细了解签约的过程)1.2在线申请,点击 进入下级页面后,选择好套餐后,点击 1) 填写相关信息。 (注意刚进去时,默认是网站网址,要选择应用或其他附件) 填完信息,点击同意并提交 按钮后,等待审核 商户登录qy.alipay.com,可在“签约订单”中查看审核
androidAPP 集成微信支付
最近项目里面需要支付功能,boss一致决定用微信支付,所以在网上查了很多资料,说的不全,完了就找以前的同事指教。算是成功集成上去了。在这里做个总结记录。 1、在APP上集成微信支付,首先当然是当官网上去注册并获取到支付功能。这些不涉及到开发,官网上说的很详细,这里就不多做文章。获取到这些能力了就为开发提供了条件了。开发中会用到的就是平台给的APPID、APPsercet、以及商户平台上设置的AP
iOS集成微信支付
1,SDK导入 下载官方SDK:下载地址 将SDK文件中包含的 libWeChatSDK.a,WXApi.h,WXApiObject.h,WechatAuthSDK 三个文件添加到你所建的工程中,这里要注意别下错了,之前试过下载的SDK名字都一样,但是就是不能够支付,因为那个SDK只能够支持分享和登录。 添加依赖: SystemConfiguration.framewo
Android应用集成微信支付
前言 最近的项目中有支付功能,客户要求同时支持“支付宝”和“微信支付”;相对来说支付宝较简单一些,以前也在Android中集成过,因此没有花费过多时间便完成了。但微信支付我是第一次接触,着实费了不少功夫,刚刚折腾出来,便想着写日志记一下这个过程,后面再用到的时候也不至于再纠结一次。
thinkphp5.0 微信支付集成
thinkphp5.0 微信支付集成!H5支付,扫码支付,app支付,公众号支付!封装好,一看exmaple 控制器就懂!
Android集成微信支付SDK
最近项目里要用到微信支付,心里想着一个支付能有多麻烦,结果还是弄了一下午,这里也整理记录一下。集成微信支付SDK官方文档里面写了四个步骤,其实对Android端来讲,保证这四个步骤不出错,支付肯定是没问题的。1.微信开放后台配置在微信开放后台里面新建一个应用,把自己项目的包名啊什么之类的信息给放上去,如果公司的产品或者运营比较忙的话,这个自己放上去也是没问题的。这一步一定要保证包名的正确,我就在这一
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表