最近一周多进行微支付开发工作,总结一下关于微支付开发中遇到的问题。

如写得不对请大家提出,第一次自己写文章。嘿嘿...

1、申请微支付,登陆公众平台后(公众号为服务号并已认证),进入“服务”-“服务中心"-“商户功能”,完成基本资料的填写;

JS API与Native API

JS API:就是通过微信端进入你的微商城,在你的微商城中选购好要购买商品,然后再通过微支付进行付款,通过getBrandWCPayRequest接口来调用微支付

Native API:商家自己生成特定的URL,用户只需要直接点击这个链接或扫描这个链接二维码就可以直接进行支付,不需要选购商品什么的。

这里只说说JS API

JS API支付授权目录:就是你最终要进行支付的最后一级目录:http://www.xxxxx.com/支付文件所有目录或路径/ 最后"/"不要忘记

维权通知URL和告警通知URL直接填写相关URL就好了,如:http://www.xxxxxx.com/tmall/warning.aspx

以上几项一定要填对,如果资料审核通过后就很难改,目前是不允许改的,但不知道以后可不可以,在实际开发中,我发现还是蛮多人填错。

2、第一步全部审核通过后,将会有邮件发送给你,包括开发需要的APPID,paySignKey,appSecret,财付通partnerId,partnerKey信息

3、进行开发及测试,一定要认真看文档,只提一下开发中可能遇到问题

a.如需要测试,请先登陆公众平台,填好测试的地址及白名单

b.测试只能在申请微支付的公众号中进行测试

c.如使用.net版本DEMO需要注意的地方:WxPayHelper.cs这个类中的CreateBizPackage()方法,注意大小写及顺序


nativeObj.Add("appId",AppId);
nativeObj.Add("package",GetCftPackage());
nativeObj.Add("timestamp", ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString());
nativeObj.Add("noncestr",Wxpay.CommonUtil.CreateNoncestr());
nativeObj.Add("paySign",GetBizSign(nativeObj));
nativeObj.Add("signType",SignType);

需要换成以下代码:

            nativeObj.Add("appId",AppId);
nativeObj.Add("timeStamp", ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000).ToString());
nativeObj.Add("nonceStr", Wxpay.CommonUtil.CreateNoncestr());
nativeObj.Add("package",GetCftPackage());
nativeObj.Add("paySign", GetBizSign(nativeObj));
nativeObj.Add("signType", SignType);

否则可能会出现支付签名不对的情况;

另外,相应的MD5加密和SHA加密的编码也需要更改,如不更改,可能会出现,body全是英文可以进行付款,但如果有中文,就无法进行付款了。

byte[] btInput = System.Text.Encoding.Default.GetBytes(s);  ======>  byte[] btInput = System.Text.Encoding.UTF8.GetBytes(s);

JS API调用支付方法这里就不贴了,文档里面有;

d.关于支付成功后,后台通知页面,需要使用Request.QueryString来接收数据,不要使用Request.Form,要不然你会接收不到数据,同时也需要处理发送过来的xml数据

可以使用

 Stream inputStream = Request.InputStream;
byte[] b = new byte[inputStream.Length];
//将输入流读入字节数组
inputStream.Read(b, 0, (int)inputStream.Length);
//将字节数组转换为经过编码的字符串
string inputStr = System.Text.Encoding.UTF8.GetString(b);

然后用XmlDocument 来处理数据

f.订单的查询及其它工作,相信你把支付搞定,应该是不成问题的。要注意的就是什么字段需要参与加密什么的。

g.订单查询等请使用文档提供的api,注意是https,不要搞错了

微支付开发(.net)的更多相关文章

  1. Delphi XE7 用indy开发微信公众平台所有功能,可刷阅读,可刷赞,可加推广(除微支付)

    http://www.cnblogs.com/devinlee/p/4565933.html Delphi XE7 用indy开发微信公众平台所有功能,可刷阅读,可刷赞,可加推广(除微支付) 关注作者 ...

  2. 微信支付开发出现redirect_uri参数错误的解决方法

    我们在进行微信支付开发的时候会遇到出现“redirect_uri参数错误”这种情况,怎么办呢?下面就是我总结出现这种“redirect_uri参数错误”的七种可能情况,以及解决方式. 1.可能原因①: ...

  3. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

    Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台:   微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...

  4. php大力力 [048节] php一点支付开发资料,很散

    https://beecloud.cn/activity/jsbutton/?index=4&t=1441261629019 https://beecloud.cn/download/ php ...

  5. PHP微信支付开发实例

    这篇文章主要为大家详细介绍了PHP微信支付开发过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 PHP微信支付开发过程,分享给大家,供大家参考,具体内容如下 1.开发环境 Thinkphp 3. ...

  6. 微信支付开发(11) Native支付

    关键字:微信公众平台 微信支付 Native原生支付作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/wxpay-native.html 由于微信支付接口更新,本 ...

  7. Android开发 --微信支付开发(转载!)(开发工具:Eclipse)

    Android_APP 微信支付接口开发 日期:2015-10-06 12:47:33 作者: 来源: 人气:3549 1.首先说一下我们在开发微信支付接口的时候遇到最多和最疑惑的问题,那就是明明 a ...

  8. 微信支付开发+{ping++}微信支付托管

    ------------------------微信支付接口------------------------------- 微信支付开发并没有想象中的那么难,主要是微信提供了sdk. 微信公众号必须是 ...

  9. PHP微信支付开发之扫描支付(模式二)后如何回调

    其实在写这篇文章的时候感觉自己已经落伍了,不过笔者在百度上搜索"微信支付开发之扫描支付(模式二)后如何回调"寻找答案时,发现依旧有很多朋友没有解决这个问题,所以就把自己的解决思路分 ...

随机推荐

  1. 服务器设置Apache对htaccess支持

    root权限下运行a2enmod(a2enmod是一个可以配置Apache的工具,a2enmod是属于apache2.2-common包下的一个工具),然后输入rewrite启动apache对于.ht ...

  2. 微信video标签全屏无法退出bug

    安卓(android)微信里面video播放视频,会被强制全屏,播放完毕后还有腾讯推荐的视频,非常讨厌..强制被全屏无法解决,但是视频播放完毕后退出播放器可以解决.方法就是视频播放完毕后,用音频aud ...

  3. 修改oracle数据库为归档模式

    参考博客:http://blog.csdn.net/codesaint/article/details/1901030 Oracle分为非归档模式(NOARCHIVELOG)  和归档模式(ARCHI ...

  4. 蜗牛历险记(二) Web框架(下)

    Web框架第三篇--缓存篇 缓存的优劣很大程度上决定了框架的效率,一个有节操的缓存它应该是高效的,利用率高的,具备更多扩展功能的. 一.介绍之前 计算机各个硬件的运行效率是不一样的,CPU>&g ...

  5. 一步步学习ASP.NET MVC3 (14)——Route路由

    请注明转载地址:http://www.cnblogs.com/arhat 由于今天是星期六,所以多写几篇,感觉前几天的忙碌没有及时发布文章,趁着周末老魏尽力的多写几篇文章.因为本系列基本上快结束了,所 ...

  6. 一步步学习ASP.NET MVC3 (15)——过滤器

    请注明转载地址:http://www.cnblogs.com/arhat 今天老魏和大家一起讨论一下ASP.NET MVC中非常重要的一个知识:"过滤器".那么这个"过滤 ...

  7. POJ 3254 压缩状态DP

    题意:一个矩形网格,可以填0或1, 但有些位置什么数都不能填,要求相邻两个不同时为1,有多少种填法.矩形大小最大 12*12. 压缩状态DP大多有一个可行的state的范围,先求出这个state范围, ...

  8. 《深入理解计算机系统》C程序中常见的内存操作有关的典型编程错误

    对C/C++程序员来说,内存管理是个不小的挑战,绝对值得慎之又慎,否则让由上万行代码构成的模块跑起来后才出现内存崩溃,是很让人痛苦的.因为崩溃的位置在时间和空间上,通常是在距真正的错误源一段距离之后才 ...

  9. python 删除文件和文件夹

    1.删除文件 '''删除文件 ''' def DeleteFile(strFileName): fileName = unicode(strFileName, "utf8") if ...

  10. python join字符连接函数的使用方法

    就是把一个list中所有的串按照你定义的分隔符连接起来,比如: >>> import string >>> >>> >>> li ...