以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  微信支付测试例子有个不理解的~  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=132171)

--  作者:fubblyc
--  发布时间:2019/3/15 14:35:00
--  微信支付测试例子有个不理解的~

If result.GetValue("return_code") = "SUCCESS" AndAlso result.GetValue("result_code") = "SUCCESS" Then
    If dr Is Nothing Then
        dr = DataTables(tn).Find("out_trade_no=\'" & result.GetValue("out_trade_no") & "\'")
    End If
    If dr Is Nothing Then
        Functions.Execute("logtext","无此业务订单,out_trade_no= " & result.GetValue("out_trade_no") )
        Return False
    End If
    dr("trade_state") = result.GetValue("trade_state")

为什么是两个 if dr is nothing then  ,是不是可以合并在一起。



图片点击可在新窗口打开查看此主题相关图片如下:23.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2019/3/15 14:37:03编辑过]

--  作者:有点甜
--  发布时间:2019/3/15 14:45:00
--  

 

不可以合并,每一步的判断都是必要的。

 

执行到这里的时候,dr有可能已经有值了

 

dr = DataTables(tn).Find("out_trade_no=\'" & result.GetValue("out_trade_no") & "\'")


--  作者:fubblyc
--  发布时间:2019/3/15 14:48:00
--  
哦哦,明白了,谢谢甜老师!
--  作者:fubblyc
--  发布时间:2019/3/15 14:52:00
--  
老师,测试的例子,是没有订单明细,直接就是商品的支付情况。


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190315145028.png
图片点击可在新窗口打开查看




我设计的是商品一个表,订单明细一个表。

设计是 顾客付款后,查询订单是否支付成功。

问题是,在查询的页面,不知道怎么取 当前订单的 商户号,我是取最后一个订单。

如果是2个人同时在购买,就会造成错乱。

有什么办法可以解决吗?


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190315145054.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2019/3/15 14:52:51编辑过]

--  作者:fubblyc
--  发布时间:2019/3/15 14:54:00
--  
\'公众号内支付获取H5调起JS API参数
Dim e As RequestEventArgs = args(0)
Dim product_id As String = e.PlainText
Dim wb As New WeUI

Dim dr1 As DataRow = DataTables("公众号支付订单").Find("product_id=\'" & product_id & "\'","out_trade_no Desc") \'查询是否存在此业务订单
If dr1 IsNot Nothing Then
    If Functions.Execute("api_QueryOrder",dr1("out_trade_no"),0) = True Then
        e.WriteString( "OK")
    Else
        e.WriteString( "NO")
    End If
Else
    e.WriteString("错误:不存在此业务订单号【" & product_id & "】,无法发起支付!")
End If

--  作者:fubblyc
--  发布时间:2019/3/15 15:10:00
--  
我的js 是这样;
function jsApiCall() {

    var result = sendAjaxText(document.getElementById("订单编号").value, "getWxJsApiParam.htm", "", false); //通过订单编号从服务器获取JS接口需要的参数
//alert(document.getElementById("订单编号").value)
    if (result == ""){
        showDialog(\'dlg1\', \'错误\', "业务后台出错-1!");
        return;
    }
    if (result.substring(0, 2) == "错误") {
        showDialog(\'dlg1\', \'错误\', result);
        return;
    }
    var wxJsApiParam = JSON.parse(result);
    WeixinJSBridge.invoke(
        \'getBrandWCPayRequest\',
        wxJsApiParam, //josn串
        function (res) {
            WeixinJSBridge.log(res.err_msg);

    var result2 = sendAjaxText(document.getElementById("订单编号").value, "QueryOrder.htm", "", false); 
    if (result2 == "") {
        showDialog(\'dlg1\', \'错误\', "业务后台出错-2!");
        return;
    }

    if (result2.indexOf("OK") != -1) {     

      window.location.href="youhuiquanliebiao.htm";
    } 

    if (result2 == "NO") {
        showDialog(\'dlg1\', \'温馨提示\', "支付未完成哦!");
        return;
    }

         //   document.getElementById("txt").value = JSON.stringify(res);
         //   alert(res.err_code + res.err_desc + res.err_msg);//接口调用后的返回处理,可以在网页显示成功是否。注意这里返回的成功并不能代码真正的成功,需要查询订单进行确认


        }
    );
}

--  作者:有点蓝
--  发布时间:2019/3/15 15:37:00
--  
根据订单编号来查呀,不要说每一笔订单的编号都是一样的吧
--  作者:fubblyc
--  发布时间:2019/3/15 15:41:00
--  
document.getElementById("订单编号").value

这里所谓的 订单编号 其实是商品编号,商品编号是一样的。


我也想获取微信支付产生的订单编号,就是不知道怎么取到,才用本商品的最后一行的订单编号。

--  作者:有点蓝
--  发布时间:2019/3/15 15:43:00
--  
每一笔支付生成一个唯一编号,然后改为使用编号,不要使用商品编号


--  作者:fubblyc
--  发布时间:2019/3/15 15:43:00
--  
蓝老师,你看,测试的例子,订单编号是固定的:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190315154407.png
图片点击可在新窗口打开查看