订餐系统之微信支付,踩了官方demo的坑

简介:       最近一个项目要增加微信支付的功能,想来这个东西出来这么久了,按微信提供的应该可以很快搞定的,结果提供的demo( JS API网页支付)中各种坑,咨询他们的客服,态度倒是非常好,就是解决不了问题,最后让我发邮件,一想,这个邮件一来一回至少又得好几个小时,没有办法只能根据开发文档一个一个核对,再加上些猜想,终于完成了。

      最近一个项目要增加微信支付的功能,想来这个东西出来这么久了,按微信提供的应该可以很快搞定的,结果提供的demo( JS API网页支付)中各种坑,咨询他们的客服,态度倒是非常好,就是解决不了问题,最后让我发邮件,一想,这个邮件一来一回至少又得好几个小时,没有办法只能根据开发文档一个一个核对,再加上些猜想,终于完成了。为了别的朋友少踩些坑,特此小文,希望对一此朋友有所帮助。

        

准备工作

         当然,要集成微信支付,首先还是要先有一个微网站,熟悉的请飘过,不了解的,可以参考下我之前的一篇小文 订餐系统之微信点餐 更多信息可以登录微信公众平台

     目前的情况应该是,只有认证的服务号可以申请微信支付功能。相关认证、申请的操作,登录微信公众平台一看就知道了,在此就不细说了。要特别注意的就是要填写相关请求目录,请求url时,要特别注意,目前微信公众平台是不能自己修改的,只能发邮件给:,让他们修改,邮件格式可以向客服咨询。

    当然,还有一个最重要的准备工作,就是先获取他们的文档和demo.  http://wxpay.weixin.qq.com/doc/index.html 要注意的就是,他们的demo中有很多坑哦。不过,他们的文档我没有看到问题,细读这些文档还是少不了的。

  

测试相关配置

        如果你的帐号现在处于支付测试状态下,需要进行相关配置。请根据下图操作。

  

                            图(1)

 

   

                图(2)

 

demo( JS API网页支付)中可能有问题的地方

        下面我就把我在微信提供的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的一些问题,用去了我和他们客服的时间,所以希望对在集成或者准备集成的微信支付的朋友有点帮助,做为程序员,我们的时间应该是用在更有意义的地方。为了方便大家,我把自己最后的支付相关代码也做了整理,虽然不能直接用,其实也是稍微修改下里面的逻辑就可以直接用,另外,鄙人能力有限,写得不好,有不对的地方,也请大家海涵哈!

      wxpaydemo.rar

  

     成为一名优秀的程序员!

版权声明:
作者:J²
有事儿Q我
有事儿W我
编辑: 妞妞
妞妞主页
出处:http://www.cnblogs.com/jijunjian/
本文版权归作者和博客园共有,欢迎转载,大家好,才是真的好!
 
目录
相关文章
|
JavaScript 安全 前端开发
基于koa实现的微信JS-SDK调用Demo
使用koa框架实现微信 JS-SDK 调用示例
218 0
|
前端开发 Java
java开发Demo~微信扫码支付,java开发示例
开发所需工具类 开发所需jar 具体的代码不贴了,说明下PayConfigUtil中的参数 APP_ID和APP_SECRET在公众平台  MCH_ID和API_KEY在商户平台,其中API_KEY是自己设置的,并不是自动生成的。
1561 0
|
JavaScript 定位技术 开发工具
微信JS SDK Demo 官方案例
转自:http://my.oschina.net/superkangning/blog/367484  微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。
1732 0
微信高级群发接口demo
微信群发接口的基本思路: 1.  获取关注者列表 2.  创建群发的XML 3.  发送群发的XML。作者编写了一个文本群发的demo 供读者分享。
831 0
|
Web App开发 JavaScript PHP
微信JS SDK PHP Demo
原文:微信JS SDK PHP Demo 微信JS-SDK PHP Demo JS接口安全域名 自定义分享接口 jsapi_ticket 分享到朋友圈 分享给朋友 分享到QQ 原文:http://www.cnblogs.com/txw1958/p/weixin-js-sdk-php-demo.html   一、JSSDK类定义 // 注意:所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
1218 0
|
Web App开发 JavaScript PHP
微信JS SDK PHP Demo
微信JS-SDK PHP Demo JS接口安全域名 自定义分享接口 jsapi_ticket 分享到朋友圈 分享给朋友 分享到QQ 原文:http://www.cnblogs.com/txw1958/p/weixin-js-sdk-php-demo.html   一、JSSDK类定义 // 注意:所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
1348 0
|
11天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
11天前
|
小程序 安全 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的身份认证与授权机制。身份认证包括手机号验证、微信登录和第三方登录,而授权机制涉及角色权限控制、ACL和OAuth 2.0。实践中,开发者可利用微信登录获取用户信息,集成第三方登录,以及实施角色和ACL进行权限控制。注意点包括安全性、用户体验和合规性,以保障小程序的安全运行和良好体验。通过这些方法,开发者能有效掌握小程序全栈开发技术。

热门文章

最新文章