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

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

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. Flexbox完整指南- A Complete Guide to Flexbox

    背景 Flexbox 布局 (FLexible Box)模块(现在处于W3C的最终征求意见稿(Last Call Working Draft)阶段)意在提供一个更为有效的方式来进行布局.对齐和分配一个 ...

  2. Linux C 程序 基础(FOUR)

    1.标识符:C语言本身不限制变量长度,但是某些编译器会限制变量长度,命名最好不要超过8位.         以数字开头,保留字,*,空格非法 2.关键字:类型说明符,int , 语句定义符,if el ...

  3. git 使用事项

    基本安装可查看 http://help.github.com 如果删除了本地的文件,要恢复相关文件,在github存在(别人增加的),则:git pull <远程主机名> <远程分支 ...

  4. PHP 递归创建目录

    /* 用迭代的方法递归创建目录 其实在PHP5.0.0之后mkdir就已经能递归创建目录了. 这里主要是自己学习迭代,所以拿创建级联目录开刀了. 开发中应该写mkdir('./a/b/c/d/e',0 ...

  5. Html学习_简易个人网页制作

    应用学到的内容,制作简易个人网页 <!DOCTYPE html> <html> <head> <title>Jane.liu</title> ...

  6. Django数据操作

    1.一个模型类代表数据库中的一个表,一个模型类的实例代表这个数据库表中的一条特定的记录. 2.管理器和查询集. 查询集QuerySet表示从数据库中取出来的对象的集合.它可以含有零个.一个或者多个过滤 ...

  7. 2014年度辛星html教程夏季版第五节

    如果读者是一位后台开发者,那么肯定会知道什么叫表单,这里我们就介绍一下前台如何使用表单,表单的使用也是我们编写网页的必须经历的一关,而且,表单也往往是我们网站的漏洞和弱点出现的地方. ******** ...

  8. DB天气app冲刺第三天

    昨天很郁闷而且烦躁的的过了一天 什么也没弄.今天其实也没有怎么做..进度非常慢.. 因为个人的问题 所以这两天的效率非常慢. 但今天还是做了一些东西.把listview做出来了.做出了一个按钮的效果. ...

  9. 使用struts2标签<s:action无法显示引用页面问题

    使用过程中参考:http://www.cnblogs.com/lihuiyy/archive/2012/03/23/2411601.html 个人使用: 1.引用页面 <s:action nam ...

  10. RPM是RedHat Package Manager(RedHat软件包管理工具)

    RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种 ...