以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  支付成功后没有填入openid  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119990)

--  作者:fubblyc
--  发布时间:2018/6/5 12:13:00
--  支付成功后没有填入openid

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_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编辑过]

--  作者:有点甜
--  发布时间:2018/6/5 12:28:00
--  

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

 

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


--  作者:fubblyc
--  发布时间:2018/6/5 13:54:00
--  
嗯嗯,是可以直接取值到。
就是看到没有,有点奇怪。

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


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


--  作者:有点蓝
--  发布时间:2018/6/5 14:02:00
--  
公众号统一下单是没有这个字段返回的。https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1

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

--  作者:fubblyc
--  发布时间:2018/6/5 14:11:00
--  
哈哈哈,忘了。
谢谢蓝老师,因为就是照着你的实例来做,忘了公众号的文档图片点击可在新窗口打开查看

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

现在已经差不多了!!

谢谢蓝老师!!