以文本方式查看主题 - 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 老师,这边支付已经都做好了,也可以成功。 但是发现这个表里 没有填入 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 -- 嗯嗯,是可以直接取值到。 就是看到没有,有点奇怪。
|
|
-- 作者:有点蓝 -- 发布时间: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 -- 哈哈哈,忘了。 谢谢蓝老师,因为就是照着你的实例来做,忘了公众号的文档 如果没有蓝老师的实例,是真的很难做出来。 现在已经差不多了!! 谢谢蓝老师!!
|