微信支付官方SDK V3 .NET版的坑
2017-08-22 16:31
441 查看
我觉得玩微信支付最大的难点和瓶颈并不是微信支付本身,而是能够拿到微信支付的权限.首先微信支付所面向的开发对象不是个人,所以个人开发者不会有这样的权限,另外一方面公司的微信号又不会随便给个人进行开发,这样就陷入了一个比较尴尬的循环!
在好不容易搞到权限后,发现官方的sdk里面竟然有.NET版本,这让小猪欣喜如狂,赶紧下下来研究一番.这也就有了本文.
在设置好开发环境,测试白名单,,回调…确定微信后台设置已经没有问题之后.
接下来看.NET版本中的坑
默认Default.aspx中的链接竟然都是链接到http://paysdk.weixin.qq.com/example/ProductPage.aspx…这个不注意的真的会郁闷好久.将其改成我们自己的服务器测试地址.
默认他给你开启了代理服务器,你不知道的话也会坑你好久
如果这边不填的话,又报错,无效的 URI: 此 URI 为空。
如果填成0.0.0.0:0,报错,无效的 URI: URI 方案无效。
心都碎了.只好找到他使用代理的地方手动注释掉:
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/image_thumb5.png)
终于可以看到支付页面了
我们不需要使用公用地址的功能,所以在后台注释掉相关代码
把前台aspx页面的使用地址的代码也删掉.
,可是点一下支付按钮..
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/Screenshot_2015-05-28-10-03-53_thumb.png)
仔细一看,这里又特么跳转到他们自己的测试服务器上面去啦.!
改成我们自己的服务器地址后又是下单失败,只好找到代码出错的地方把try catch注释掉看看哪出错了!
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/image_thumb6.png)
发现还是无效的 URI: 尼玛还有地方请求设置了代理,找到注释掉:
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/image_thumb7.png)
这时候再打开终于见到可以看到预支付的界面了:
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/image_thumb8.png)
点击支付按钮也可以成功支付:
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/image_thumb9.png)
但是支付成功后却不能正确的执行支付结果js回调函数.看看其页面的点击事件是放在asp:Button上面的.我们知道在asp.net webform中,按钮的点击是有页面回调后台的.也就是其实点击了之后页面是有刷新的,所以这边要是想用官方的js回调的话就不能使用asp.net的服务器控件了!将点击支付的按钮改成
这样,我们不管在支付成功和失败后都会执行我们在界面里定义好的回调函数!
总结:不知道大TX的ASP.NET工程师是怎么想的,能够打包成sdk供用户参考必然是好的,但是却挖了这么多坑在这,想必如果没有一点基础的话对付这玩意还真挺吃力的.
最后要感谢:smallerpig.
原文章地址:http://www.smallerpig.com/720.html
在好不容易搞到权限后,发现官方的sdk里面竟然有.NET版本,这让小猪欣喜如狂,赶紧下下来研究一番.这也就有了本文.
在设置好开发环境,测试白名单,,回调…确定微信后台设置已经没有问题之后.
接下来看.NET版本中的坑
默认Default.aspx中的链接竟然都是链接到http://paysdk.weixin.qq.com/example/ProductPage.aspx…这个不注意的真的会郁闷好久.将其改成我们自己的服务器测试地址.
默认他给你开启了代理服务器,你不知道的话也会坑你好久
1 2 3 4 | //=======【代理服务器设置】=================================== /* 默认IP和端口号分别为0.0.0.0和0,此时不开启代理(如有需要才设置) */ public const string PROXY_URL = "http://10.152.18.220:8080"; |
如果填成0.0.0.0:0,报错,无效的 URI: URI 方案无效。
心都碎了.只好找到他使用代理的地方手动注释掉:
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/image_thumb5.png)
终于可以看到支付页面了
我们不需要使用公用地址的功能,所以在后台注释掉相关代码
1 | //获取收货地址js函数入口参数 |
,可是点一下支付按钮..
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/Screenshot_2015-05-28-10-03-53_thumb.png)
仔细一看,这里又特么跳转到他们自己的测试服务器上面去啦.!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | protected void Button1_Click(object sender, EventArgs e) { string total_fee = "1"; if(ViewState["openid"] != null) { string openid = ViewState["openid"].ToString(); string url = "http://paysdk.weixin.qq.com/example/JsApiPayPage.aspx?openid=" + openid + "&total_fee=" + total_fee; Response.Redirect(url); } else { Response.Write("页面缺少参数,请返回重试" + ""); Button1.Visible = false; Button2.Visible = false; Label1.Visible = false; Label2.Visible = false; } } |
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/image_thumb6.png)
发现还是无效的 URI: 尼玛还有地方请求设置了代理,找到注释掉:
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/image_thumb7.png)
这时候再打开终于见到可以看到预支付的界面了:
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/image_thumb8.png)
点击支付按钮也可以成功支付:
![](http://smallerpig.qiniudn.com/wp-content/uploads/2015/05/image_thumb9.png)
但是支付成功后却不能正确的执行支付结果js回调函数.看看其页面的点击事件是放在asp:Button上面的.我们知道在asp.net webform中,按钮的点击是有页面回调后台的.也就是其实点击了之后页面是有刷新的,所以这边要是想用官方的js回调的话就不能使用asp.net的服务器控件了!将点击支付的按钮改成
1 | <button style="width:210px; height:50px; border-radius: 15px; border:0px #FE6714 solid; cursor: pointer; color:white; font-size:16px;" type="button" onclick="callpay()" >立即支付</button> |
总结:不知道大TX的ASP.NET工程师是怎么想的,能够打包成sdk供用户参考必然是好的,但是却挖了这么多坑在这,想必如果没有一点基础的话对付这玩意还真挺吃力的.
最后要感谢:smallerpig.
原文章地址:http://www.smallerpig.com/720.html
相关文章推荐
- 微信支付官方SDK-phpV3的一处坑
- 微信支付V3微信公众号支付PHP教程(thinkPHP5公众号支付)/JSSDK的使用
- S60 V3版SDK的官方扩展插件
- 深入分析微信支付SDK文档,深度剖析公众号支付官方demo脚本
- 微信支付WxpayAPI_php_v3(一)sdk简介与错误修改
- 微信支付官方SDK调通
- 转载【微信支付】jsapi支付之传参问题(使用微信官方SDK之PHP版本) V3之WxpayPubHelper 亲测有效,V3WxpayAPI_php_v3.zip版未测试,理论上也是一样的。
- 微信支付官方.net版之坑你没商量
- 微信支付官方.net版之坑你没商量
- php微信支付官方SDK简单开发
- 微信支付PHP SDK之微信公众号支付代码详解
- 最新Android ADT, SDK, SDK_tool等官方下载说明(及时更新)
- 最新Android ADT, SDK, SDK_tool等官方下载
- 微信支付 V3版本 错误总结
- 快拖v3.4.4.646无广告官方绿色版
- 微信官方jssdk Demo
- 新云网站内容管理系统 v3.0.0.528 官方下载
- VC6.0 最新的 SDK platform sdk xp-sp2 官方下载地址 (zz)
- 官方AWZ爱伪装 一键新机 全息备份 虚拟定位 非NZT 暗王者 IG V8 V3 IOSAPP一键新机 全息备份
- WP8 SDK官方正式版本下载