1. 下载微信支付的demo
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1,
修改lib/config.cs 文件,里面的APPID,APPSECRET等配置,打开日志LOG_LEVENL = 3;编译成dll
2. 上传到服务器上(JSAPI的方式必须要用微信浏览器访问,本地测试不了)
3. 访问 https://api.xxx.com/example/ProductPage.aspx ,会出现微信登录失败,授权回调域名校验出错,错误码10003
这个是公众号支付(JSAPI),应该是要公众号授权回调域名api.xxx.com, 之前是设置tuan.xxx.com为回调域名,没有设api域名
4. 下单时日志显示错误信息:time_expire时间过短,刷卡至少1分钟,其他5分钟。
但是demo代码默认是设置10分钟的,原来是服务器的时间(时区)和微信服务器时间不同
微信文档中提示
标准北京时间,时区为东八区;如果商户的系统时间为非标准北京时间。参数值必须根据商户系统所在时区先换算成标准北京时间, 例如商户所在地为0时区的伦敦,当地时间为2014年11月11日0时0分0秒,换算成北京时间为2014年11月11日8时0分0秒。
5. log 显示HttpService: System.Net.WebException: Timeout, lib/config.cs 的 商户系统后台机器IP地址没有改,访问不了商户服务器
6. 页面显示“当前页面的URL未注册 http://tuan.xxx.com/example/JsApiPayPage.aspx”
参考这个设置 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3 这里又有另一个坑:目录要设成http://tuan.xxx.com/example/, 不能设为http://tuan.xxx.com/
7. 支付成功后没显示回调结果,查看log,回调文件会被执行,只是不会跳转到回调页面而已