博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信开发官方Demo(C#版本) 坑死人
阅读量:4941 次
发布时间:2019-06-11

本文共 1329 字,大约阅读时间需要 4 分钟。

本人于2016年7月12号从微信官网下载了 WxPayAPI_CS_v3 ,  C#版本的Demo程序,现在来分享下腾讯是多么的坑爹.

第1个坑: JSAPI Demo.  JsApiPayPage.aspx 页面中 如下代码

 

//调用微信JS api 支付

function jsApiCall()

{

WeixinJSBridge.invoke(
'getBrandWCPayRequest',
<%=wxJsApiParam%>,//josn串
function (res)
{
WeixinJSBridge.log(res.err_msg);
alert(res.err_code + res.err_desc + res.err_msg);
}
);
}

<form runat="server">

<br/>
<div align="center">
<br/><br/><br/>
<asp:Button ID="submit" runat="server" Text="立即支付" OnClientClick="callpay()" style="width:210px; height:50px; border-radius: 15px;background-color:#00CD00; border:0px #FE6714 solid; cursor: pointer; color:white; font-size:16px;" />
</div>
</form>

请注意Button采用的是服务端控件,当触发点击的时候会引起页面回传导致 <%=wxJsApiParam%>,//josn串 为空,解决办法很简单,使用html button即可

<button οnclick="callpay()" type="button">立即支付</button>

还有要注意的是: 微信web开发者工具V0.7.0 中不支持JSAPI调试, 所以大家还是用手机在微信端调试吧.

 

第2个坑  扫码支付模式一: 

公众平台设置好 :支付授权目录 和 扫码支付回调URL.

大家看代码:  lib\Data.cs 中 第112行 FromXml函数中

112: public SortedDictionary<string, object> FromXml(string xml)

 

if(m_values["return_code"] != "SUCCESS")

{
  return m_values;
}

SortedDictionary<string, object> m_values ; 这是 m_values的声明

m_values["return_code"] 取出来的数据是Object,如此不严谨的代码导致了异常.解决办法:

首先判断 key是否存在,然后在做类型转换.

 

最后完美解决了支付问题。 最后吐槽下 腾讯的程序员们,做个Demo出来能先测试下不?以后我个人是不会再使用微信支付了,程序员都如此,真不敢相信微信支付的安全.

 

转载于:https://www.cnblogs.com/endlessgui/p/5671315.html

你可能感兴趣的文章
GDI+ ColorMatrix的完全揭秘
查看>>
破解电信光猫华为HG8120C关闭路由功能方法
查看>>
在Qt示例项目的C ++ / QML源中的//! [0]的含义是什么?
查看>>
【智能家居篇】wifi网络接入原理(上)——扫描Scanning
查看>>
操作引入xml文件的书包(定位到指定节点)
查看>>
操作系统学习笔记系列(一)- 导论
查看>>
CSS实例:图片导航块
查看>>
window的对象有哪些(笔记)
查看>>
Boolean Expressions
查看>>
They Are Everywhere
查看>>
数据结构--汉诺塔递归Java实现
查看>>
day14 多态与抽象
查看>>
Eclipse CDT 出现 launch failed Binary not found
查看>>
apache jmeter
查看>>
Linux 基本命令
查看>>
RedHat7.0 网络源的配置
查看>>
(Mark)JS中关于闭包
查看>>
流程结构图
查看>>
ios端web app在键盘升起后缩小view防止界面仍可上下滑动
查看>>
从service弹出系统级自定义提示框,可在任意页面弹出
查看>>