订餐系统之微信支付,踩了官方demo的坑
最近一个项目要增加微信支付的功能,想来这个东西出来这么久了,按微信提供的应该可以很快搞定的,结果提供的demo( JS API网页支付)中各种坑,咨询他们的客服,态度倒是非常好,就是解决不了问题,最后让我发邮件,一想,这个邮件一来一回至少又得好几个小时,没有办法只能根据开发文档一个一个核对,再加上些猜想,终于完成了。为了别的朋友少踩些坑,特此小文,希望对一此朋友有所帮助。
当然,要集成微信支付,首先还是要先有一个微网站,熟悉的请飘过,不了解的,可以参考下我之前的一篇小文 订餐系统之微信点餐 更多信息可以登录微信公众平台
目前的情况应该是,只有认证的服务号可以申请微信支付功能。相关认证、申请的操作,登录微信公众平台一看就知道了,在此就不细说了。要特别注意的就是要填写相关请求目录,请求url时,要特别注意,目前微信公众平台是不能自己修改的,只能发邮件给:weixinpay@tencent.com,让他们修改,邮件格式可以向客服咨询。
当然,还有一个最重要的准备工作,就是先获取他们的文档和demo. http://wxpay.weixin.qq.com/doc/index.html要注意的就是,他们的demo中有很多坑哦。不过,他们的文档我没有看到问题,细读这些文档还是少不了的。
如果你的帐号现在处于支付测试状态下,需要进行相关配置。请根据下图操作。

图(1)

图(2)
下面我就把我在微信提供的demo基础上,说明下要修改的地方。之前一直提示什么订单数据验证失败,当看下图时就知道OK了。

jsapi.aspx.cs 第50行,增加参数: packageReqHandler.setParameter("bank_type", "WX"); //固定为"WX";
/tenpayLib/TenpayUtil.cs 中的key 其实是 PartnerKey,一开始我还以为是appkey。
/tenpayLib/RequestHandler.cs 中的 key一定要赋值为 TenpayUtil.key,默认是空的。
/tenpayLib/ResponseHandler.cs 中的 key 和appkey 一定要赋值为 TenpayUtil.key和TenpayUtil.appkey;
如果你的项目是utf-8的,还要修改以下内容:
TenpayUtil.cs.getNoncestr 变成
public static string getNoncestr()
{
Random random = new Random();
return MD5Util.GetMD5(random.Next(1000).ToString(), charset);
}
/tenpayLib/ResponseHandler.cs 中的charset
所有用到charset的地方修改成utf-8。
原本是一个简单的事儿,可由于官方demo的一些问题,用去了我和他们客服的时间,所以希望对在集成或者准备集成的微信支付的朋友有点帮助,做为程序员,我们的时间应该是用在更有意义的地方。为了方便大家,我把自己最后的支付相关代码也做了整理,虽然不能直接用,其实也是稍微修改下里面的逻辑就可以直接用,另外,鄙人能力有限,写得不好,有不对的地方,也请大家海涵哈!
成为一名优秀的程序员!
订餐系统之微信支付,踩了官方demo的坑的更多相关文章
- 解决新版Android studio导入微信支付和支付宝官方Demo的问题
最近项目要用到支付宝支付和微信支付,本想使用第三方支付框架ping++或者BeeCloud的,但是由于他们的收费问题,让我望而却步,而且公司给了相应的公钥.私钥和APPID等,所以就用下开放平台的呗. ...
- 微信扫码i支付~官方DEMO的坑
返回目录 之前写过关于微信支付那些坑的文章(<微信JSApi支付~集成到MVC环境后的最后一个坑(网上没有这种解决方案)>,<微信JSApi支付~坑和如何填坑>),下面说一下微 ...
- 微信扫码支付~官方DEMO的坑~参数不能自定义
返回目录 由于微信在校验参数时采用了“微信服务端”校验,它的参数是前期定义好的,所以用户不能自己添加自定义的参数,你可以把参数写在Attach字段时,作为它的附加参数. 参数和返回值定义如下: pub ...
- 微信支付中分账功能 填坑指南V1
公司是做电商的,近期开发了一款小程序,准备线上线下同步销售玩具.这里就涉及到微信支付的功能,网上有很多教程,官方也有文档和Demo,因此微信支付还是比较容易实现的. 由于我们公司是和其他公司合作运营的 ...
- 坑爹的微信支付v3,其实没有那么坑
http://www.cnblogs.com/zskbll/p/wxpay.html 研究微信开发一年多了,每个新接口,都会第一时间进行研究.微信支付开放很久,一直没机会接触到支付接口,等了好久终于从 ...
- 微信支付成功没有回调遇到的坑 onBridgeReady getBrandWCPayRequest wx.chooseWXPay
最近在调微信支付,遇到一个问题,就是支付成功回调不执行的. 遇到的问题就是 苹果手机 支付成功没有进到回调函数里,但是支付的时候,点击取消支付是可以进到回调函数里的. 安卓手机测试一切正常! ...
- 关于微信支付URL未注册其中的坑THINKPHP5
1 微信支付是区分大小写的 TP有的URL 会默认转换 http://ams.###.com/index/Pay/wechat/order_number/ 会被解析 http://ams.###.co ...
- 移动H5页面微信支付踩坑之旅(微信支付、单页面路由模拟、按钮加锁、轮询等常见功能)
开发背景: .net混合开发的vue模板语法的单页面应用,所以不存在脚手架以及没有路由可以跳转. 项目描述: 需要写两个页面,在订单详情页需要点击“请输入手机号”进入手机号绑定页面,手机号绑定成功后自 ...
- iOS - WXPay 微信支付
1.微信支付申请 微信支付官方集成指引 微信支付官方集成指导视频 微信 APP 支付开发者文档 微信公众平台 微信开放平台 微信商户平台 1.1 微信 APP 支付申请步骤 APP 支付:APP 支付 ...
随机推荐
- li进度条宽度和颜色按顺序显示的效果。
实际项目中li和里边的数值是动态生成的,需要控制它的宽度和颜色,效果如图: 如果能实现颜色按数值规律变化就好了,目前颜色是固定到数组中的. 实例代码如下: <!DOCTYPE html>& ...
- Java基础知识点复习知识点(一)变量,流程控制,数组
- compileDebugJavaWithJavac
学习笔记 compileDebugJavaWithJavac,缺少插件,在module app gradle文件最上面添加一段 apply plugin: 'me.tatarka.retrolambd ...
- Linux0.11内核--进程调度分析之2.调度
[版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5596830.html ] 上一篇说到进程调度归根结底是调用timer_interrupt函数, ...
- WeakReference在Handler中的应用
public class AutoActivity extends Activity { Handler handler = new Handler(){ public void handleMess ...
- ios 提取html 字符串中的img 的地址(图片地址)
本文原文地址 http://www.cnblogs.com/qianLL/p/6082287.html 有时候 后台返回的是一串html'字符串 我们需要把里面的图片地址提取出来 这个关键就是一个正 ...
- 敏捷开发与jira之研发管理模式
以IPD方法论为基础,采用原型+迭代的开发模式,并以质量优先为原则,持续对用户做价值交付. 使用JIRA+WIKI+SVN管理整个的研发过程:JIRA管理任务和进度:SVN管理代码和过程文档:WIKI ...
- Linux命令学习总结:cd命令
命令简介: 该命令用来切换当前目录.cd 是change directory 的缩写 命令语法: cd [-L|-P] [dir] 使用示例 1:切换到当前目录的上一级目录 1: [root@DB-S ...
- Linux系统安装Apache 2.4.6
Apache简介 Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广 ...
- 推荐一些python Beautiful Soup学习网址
前言:这几天忙着写分析报告,实在没精力去研究django,虽然抽时间去看了几遍中文文档,还是等实际实践后写几篇操作文章吧! 正文:以下是本人前段时间学习bs4库找的一些网址,在学习的可以参考下,有点多 ...