Foxtable(狐表)用户栏目专家坐堂 → 进入网页


  共有5804人关注过本帖树形打印复制链接

主题:进入网页

帅哥哟,离线,有人找我吗?
zhangjian222200
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/10/25 17:37:00 [只看该作者]

说的是

经过前面的提点,前面所说的函数1、2、3,大体内容是干什么的,大体了解了。
因为是菜鸟,全部看懂,可能性不大。
所以,想直接测试,在测试中摸索和理解,这样比较靠谱,测试前先再问个问题。

订单和jsapi表一样,如果确实需要,那么就都留下。订单表没有看到在保存数据,JSAPI表最后保存了数据,实在是不知道这2个表的区别,难道订单表是付款前的状态?还麻烦介绍下这2个表的关系,谢了


[此贴子已经被作者于2018/10/25 19:39:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105965 积分:538900 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 8:32:00 [只看该作者]

它们之间没有任何关系,仅仅是为了测试而创建的表。可以理解为这2个表仅仅是为了走通支付流程而存在,可以任意替换为其他任何表

 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/10/26 11:45:00 [只看该作者]

测试失败,提示:错误:JSAPI统一下单失败,无法发起支付!

错误提示:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:错误提示3332.txt
[此贴子已经被作者于2018/11/1 11:11:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105965 积分:538900 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 11:51:00 [只看该作者]

WxPayData内部含有值为null的字段!

提示很明显了,微信接口需要的数据没有给:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1,先去看微信开发文档!先去看微信开发文档!先去看微信开发文档!


req.SetValue("out_trade_no", out_trade_no)
req.SetValue("total_fee", total_fee) '支付价格,以分为单位,301就是¥3.01
req.SetValue("trade_type", trade_type) '支付类型,扫码为
req.SetValue("openid", openId) '用户关注公众号后微信分配的ID
req.SetValue("product_id", productId) '上传二维码时指定的商品ID
req.SetValue("appid", Vars("appid")) '公众号appid
req.SetValue("mch_id", Vars("mchid")) '商户ID
req.SetValue("nonce_str", req.GenerateNonceStr)
Dim nurl As String = Vars("api_order_notifyurl")
req.SetValue("notify_url", nurl) '支付成功后商户后台服务接收支付结果通知的url
req.SetValue("spbill_create_ip", Vars("ip")) '调用api的设备的IP,一般是服务器公网IP
req.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")) '二维码有效开始时间,针对模式二
req.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss")) '二维码有效结束时间,针对模式二
req.SetValue("sign", req.MakeSign)

 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/10/26 13:40:00 [只看该作者]

经过测试发现,函数api_UnifiedOrder代码,WxPayData内部值为null的字段是openid,麻烦看下下面代码中获取openid那句有问题。

获取openid的代码见前一个页面,即调用调用函数api_UnifiedOrder的页面,如下:
If annhm = 2 Then
msgbox(12)
    '首先获取用户的openid
    Dim OpenID As String
    Dim sb As New StringBuilder
    sb.AppendLine("<meta name='viewport' c>")
msgbox(13)
    If e.GetValues.ContainsKey("code") Then '如果通过授权链接跳转而来,就根据传递过来的code参数调用接口,获取用户的OpenID
msgbox(14) ’这里没有执行,其他msgbox都执行了(获取openid代码是从官方文档复制的
        Dim ul As String  = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code"
        ul = CExp(ul,"wxaa640e55d6f95bdd","d7674658f7662fd2649201928d125752",e.GetValues("code"))
        Dim hc As new HttpClient(ul)
        Dim jo As JObject = JObject.Parse(hc.GetData)
        If jo("openid") IsNot Nothing Then
            OpenID = jo("openid")
            'e.AppendCookie("openid",OpenID) '将openid存储在Cookie中
        End If
    'Else '不存储openid,每次支付时,独立获取
        'OpenId =  e.Cookies("openid") '否则从cookie中提取openid
    End If
[此贴子已经被作者于2018/11/1 11:13:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105965 积分:538900 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 13:59:00 [只看该作者]

先使用普通网页,把微信授权功能做出来,再搬到支付中:http://www.foxtable.com/mobilehelp/scr/0235.htm

 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/10/26 14:52:00 [只看该作者]

单独写一个网页代码,像下面这样引入网页?
 Dim openid = Functions.Execute("api_UnifiedOrder",OpenID,dr("product_id"),"订单|女生押金|" & yuejbh,dr("orderfee"))

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105965 积分:538900 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 15:22:00 [只看该作者]

获取网页授权是一个独立的功能,独立于微信支付之外,和27楼的用法没有任何关系,微信支付只是用到了网页授权的功能,本身并没有提供网页授权功能,请仔细看26楼的帮助,最好还是先去看看微信接口开发的说明(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842




 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  29楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105965 积分:538900 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 15:23:00 [只看该作者]

另外,授权功能必须在微信里,或者微信开发者工具里打开网页才能测试。

 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2018/10/27 10:14:00 [只看该作者]

If e.path = "456.htm" Then '问题1:根据微信开发文档,http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权改成访问www.123.com/456.htm,这样可以吧?
    Dim OpenID As String
    Dim sb As New StringBuilder
    
sb.AppendLine("<meta name='viewport' c>")
    If e.GetValues.ContainsKey("code"Then '
如果通过授权链接跳转而来,就根据传递过来的code参数调用接口,获取用户的OpenID
        
Dim ul As String  = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code"
        ul = CExp(ul,"自己的appid","自己的appsecret",e.GetValues("code"))
        Dim hc As new HttpClient(ul)
        Dim jo As JObject = JObject.Parse(hc.GetData)
        If jo("openid"IsNot Nothing Then
            OpenID = jo("openid")
            e.AppendCookie("openid",OpenID'将openid存储在Cookie中
        End If
    Else
        OpenId =  e.Cookies("openid"'否则从cookie中提取openid
    End If
    'Dim Verified As Boolean
    'Dim dr As DataRow = DataTables("WXUsers").Find("openid  ='" & OpenID & "'"'根据openid找出对应的行 '我希望每次支付时,直接获得openid就行,考虑屏蔽这几行
    'If OpenId > "" AndAlso dr IsNot Nothing AndAlso dr("permit") = True '授权成功
        'Verified  = True
    'Else
    If e.GetValues.ContainsKey("code") = False Then '如果授权失败,且不是通过授权链接跳转而来,那么就跳转到授权链接
        Dim ul As String = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8acdb7df5beb68fd&redirect_uri=http%3a%2f%2fwexin.foxtable.com&response_type=code&scope=snsapi_base&state=123#wechat_redirect" '问题2:此行粉色部分,该如何让写?
        sb.Append("<meta http-equiv='Refresh' c>"'跳转到授权链接
        e.WriteString(sb.ToString)
        Return
    End If
    If Verified = False Then
        sb.AppendLine("你无权访问本系统")
    Else
        sb.AppendLine("Foxtable欢迎您, <a href='http://wexin.foxtable.com'>刷新页面</a>")
    End If
    e.WriteString(sb.ToString)

End
 If
[此贴子已经被作者于2018/10/27 10:17:29编辑过]

 回到顶部
总数 60 上一页 1 2 3 4 5 6 下一页