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

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

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. OS X平台上MySQL环境搭建

    参考资料: http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.html http://blog.csdn.net/just ...

  2. vmware RHEL6.x 开启FTP和TELNET服务--root权限

    //vmware RHEL6.x默认未安装ftp工具,需自己安装--root权限 第一部分:ftp //检查ftp是否安装 # rpm -qa | grep -i vsftpd //找到ftp的rpm ...

  3. PHP提取身份证号码中的生日并验证是否成年的函数

    php 提取身份证号码中的生日日期以及确定是否成年的一个函数.可以同时确定15位和18位的身份证,经本人亲测,非常好用,分享函数代码如下: <?php //用php从身份证中提取生日,包括15位 ...

  4. ZeroMQ/jzmq安装使用

    环境: No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.2 LTS Release: 12 ...

  5. Python设计模式——建造者模式

    需求,画人物,要求画一个人的头,左手,右手,左脚,右脚和身体,画一个瘦子,一个胖子 不使用设计模式 #encoding=utf-8 __author__ = 'kevinlu1010@qq.com' ...

  6. python中functools.wraps装饰器的作用

    functools.wraps装饰器用于显示被包裹的函数的名称 import functools def node(func): #@functools.wraps(func) def wrapped ...

  7. C语言自带的快速排序(qsort)函数使用方法

    感觉打快排太慢了,找到了c语言自带的函数.这函数用起来没c++的方便,不过也够了. 函数名称:qsort,在头文件:<stdlib.h>中 不多说,上代码: #include <st ...

  8. 【面试题】百度糯米java工程师面试

    面试经历: 技术题问的比较基础的java知识,有个编程题设计团购秒杀方面的设计,之前没有这种经验做的不好,做完题一个技术经理过来面试,主要问了一下之前做的什么项目,对struts,spring的原理做 ...

  9. Grails默认首页的修改

    有些人使用IDEA开发Grails,开发阶段使用Grails自带的默认首页可以方便我们开发,但是开发结束后想要修改默认的首页,如何修改呢? 1.打开grails-app 文件下conf下的UrlMap ...

  10. Linux系统架设支持自助开通Shado wsocks及VPN前端的教程

    程序实现:通过网页端注册,自助开通VPN帐号及Shadowsocks帐号.并可实现流量统计 系统要求 Debian 6 x64 纯净系统 by: Lop ①配置环境 apt-get updateapt ...