C#微信支付(四)—— 扫码支付

扫码支付官网有模式一和模式二两种方法,简单看了下,感觉模式一有点坑,而且查了下貌似评价都不好,所以就只用了模式二。 相关链接:扫码支付

 public class NativePay
    {

        /**
        * 生成直接支付url,支付url有效期为2小时,模式二
        * @param productId 商品ID
        * @return 模式二URL
        */
        public string GetPayUrl(UnifiedOrderModel unifiedOrderModel)
        {
            //Log.Info(this.GetType().ToString(), "Native pay mode 2 url is producing...");
            WxPayData data = new WxPayData();
            data.SetValue("body", unifiedOrderModel.body);
            data.SetValue("attach", unifiedOrderModel.attach);
            data.SetValue("out_trade_no", unifiedOrderModel.out_trade_no);
            data.SetValue("total_fee", unifiedOrderModel.total_fee);
            data.SetValue("time_start", unifiedOrderModel.time_start);
            data.SetValue("time_expire", unifiedOrderModel.time_expire);
            data.SetValue("goods_tag", unifiedOrderModel.goods_tag);
            //交易类型,JSAPI 公众号支付, NATIVE 扫码支付, APP APP支付
            data.SetValue("trade_type", "NATIVE");
            data.SetValue("product_id", unifiedOrderModel.productId);

            WxPayData result = WxPayApi.UnifiedOrder(data);//调用统一下单接口

            if (!result.IsSet("code_url"))
            {
                throw new Exception("扫码支付地址获取失败!");
            }

            string url = result.GetValue("code_url").ToString();//获得统一下单接口返回的二维码链接

            //Log.Info(this.GetType().ToString(), "Get native pay mode 2 url : " + url);
            return url;
        }
    }
function Pay() {
            $.ajax({
                type: "post",
                url: "url",
                dataType: "json",
                data: {
                    "method": "GetPayUrl",
                    "body": $("#body").val(),
                    "attach": $("#attach").val(),
                    "out_trade_no": $("#out_trade_no").val(),
                    "total_fee": $("#total_fee").val(),
                    "goods_tag": $("#goods_tag").val(),
                    "productId": $("#productId").val()
                },
                success: function (data) {
                    var item = eval(data); //转换成json对象访问           
                    alert(data.url);

                    if (data.url) {
                        $('#qrcodeCanvas').qrcode({
                            text: data.url
                        });
                    } else {
                        alert(data.error);
                    }

                    return;
                }
            });
        }

二维码生成用的是JQ的jquery.qrcode.min.js,具体查下就好了,几句话而已,没什么复杂的。

猜你喜欢

转载自blog.csdn.net/qwt7896541230/article/details/82691867