Foxtable(狐表)用户栏目专家坐堂 → 支付成功后没有填入openid


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

主题:支付成功后没有填入openid

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
支付成功后没有填入openid  发帖心情 Post By:2018/6/5 12:13:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20180605092158.png
图片点击可在新窗口打开查看
老师,这边支付已经都做好了,也可以成功。
但是发现这个表里 没有填入 openid 的数据,不知道什么原因。。。
上面的客户ID是列标题,列名称是 openid
实例代码:
'统一下单
Dim openId As String = Args(0) '参数一,用户公众号ID,JSAPI模式必须,已经网页授权获取到,可以正常支付了
Dim productId As String = Args(1) '参数二,业务订单id
Dim trade_type As String = Args(2) '参数三,下单类型:JSAPI--公众号支付?NATIVE--原生扫码支付?APP--app支付
Dim total_fee As Integer = Args(3) '参数四,支付金额

Dim req As WxPayData = Functions.Execute("GetWxPayData")
req.SetValue("body", "微信充值卡")

Dim dr As DataRow = DataTables(trade_type).Find("product_id='" & productId  & "'")
Dim out_trade_no As String = req.GenerateOutTradeNo()
dr("out_trade_no") = out_trade_no

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)
Functions.Execute("logtext",req.ToXML)
Dim url As String = Functions.Execute("GetApiUrl","api_unifiedorder")
Functions.Execute("logtext","开始调用下单:" & url)
Dim hc As New HttpClient(url)
hc.C
hc.Timeout = 6
hc.Content = req.ToXML
Dim ret As String = hc.GetData()
req = Functions.Execute("GetWxPayData")
req.FromXml(ret)
dr("return_code") = req.GetValue("return_code")
dr("return_msg") = req.GetValue("return_msg")
If req.IsSet("appid") = False OrElse req.IsSet("mch_id") = False OrElse req.IsSet("prepay_id") = False Then
    Functions.Execute("logtext","统一下单失败!" & ret)
    Return False
End If
dr("openid") = req.GetValue("openid")
dr("total_fee") = req.GetValue("total_fee") '实际支付金额
dr("prepay_id") = req.GetValue("prepay_id")
dr("trade_type") = req.GetValue("trade_type")
dr("device_info") = req.GetValue("device_info")
dr("result_code") = req.GetValue("result_code")
dr("code_url") = req.GetValue("code_url")
dr("err_code") = req.GetValue("err_code")
dr("err_code_des") = req.GetValue("err_code_des")
dr.Save
Return True
[此贴子已经被作者于2018/6/5 12:13:56编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/5 12:28:00 [只看该作者]

1、返回的req里面,有没有openid?帮助文档发出来看看。

 

2、不是可以直接获取值 openId 变量?


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/6/5 13:54:00 [只看该作者]

嗯嗯,是可以直接取值到。
就是看到没有,有点奇怪。

1、返回的req里面,有没有openid?帮助文档发出来看看。


这个有帮助文档吗?哈哈,我是照着蓝老师的实例做的


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/5 14:02:00 [只看该作者]

公众号统一下单是没有这个字段返回的。https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1

做微信支付开发居然还不知道有开发文档?

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/6/5 14:11:00 [只看该作者]

哈哈哈,忘了。
谢谢蓝老师,因为就是照着你的实例来做,忘了公众号的文档图片点击可在新窗口打开查看

如果没有蓝老师的实例,是真的很难做出来。

现在已经差不多了!!

谢谢蓝老师!!

 回到顶部