扫码点菜系列解读(二)

简介: 对接准备(以测试门店和测试服务为例) 1、  应用(如果还没有自己的应用,可见创建应用:[url]https://openclub.alipay.com/read.php?tid=1606&fid=25[/url]) (1)如果是商户自己开发,需要添加口碑码战略、当面付功能,当面付需要签约,有BD...

对接准备(以测试门店和测试服务为例) 
1、  应用(如果还没有自己的应用,可见创建应用:[url]https://openclub.alipay.com/read.php?tid=1606&fid=25[/url] 
(1)如果是商户自己开发,需要添加口碑码战略、当面付功能,当面付需要签约,有BD请联系BD签约,如若没有BD,并且不清楚如何签约,可参考:[url]https://openclub.alipay.com/read.php?tid=276&fid=72[/url] 
(2)如果是ISV代商户开发,需要ISV在自己的应用添加口碑码战略、第三方应用授权功能,商户签约当面付产品,商户第三方应用授权给ISV,建议ISV在回流数据的时候传入APP_auth_token参数,创建支付订单的时候必须传递APP_auth_token参数 
注:我们强烈建议回流数据和APPID和创建支付订单的APPID是同一个,如若不是,请务必保证回流数据的APPID和创建支付订单的APPID同属一个PID 
2、  测试服务(集成阶段建议使用测试服务,可参考测试服务创建办法:[url]https://openclub.alipay.com/read.php?tid=3988&fid=72[/url] 
3、  测试门店(集成阶段建议使用测试门店,可参考测试门店创建办法:[url]https://openclub.alipay.com/read.php?tid=4013&fid=71[/url] ,测试门店默认有显示服务card的能力,正式门店需要扫码点菜验收通过后才露出显示服务card的能力 


4、 测试门店订购并上架测试服务,上架测试服务之后,用户扫该门店的桌码或者门店码会跳转到门店服务card的欢迎页,底部插件区有“点餐”按钮,如图: 



5、  点击服务card上面的“开始点菜”按钮或者插件区的“点餐”按钮会跳转测试服务的用户访问地址上面。(如果不清楚用户访问地址,请回到第2步) 
6、  用户在点菜页面点菜下单之后,需要回流数据 
(1) 回流11状态(用户下单、等待商家确认)数据,代码demo: 

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",            AlipayConfig.app_id,AlipayConfig.merchant_private_key,"json","GBK",AlipayConfig.alipay_public_key,"RSA2");          AlipayOfflineProviderUseractionRecordRequest request = new AlipayOfflineProviderUseractionRecordRequest();    //request.putOtherTextParam("app_auth_token","201801BB6b27c190986b4dac9e85e66d5aec7X35");第三方应用授权    request.setBizContent("{" +    //集成阶段传递此参数,传递之后,在支付宝钱包-口碑tab-我-我的订单-服务订单中显示一条数据,正式环境默认有显示服务订单的能力,不用传递此参数    "\"is_test_user\":\"1\","+      "\"source\":\"alipay.com\"," +    "\"action_type\":\"order_dishes\"," +    "\"industry\":\"REPAST\"," +    "\"order_type\":\"order_dish\"," +//扫码点菜场景此参数必填,传递order_dish参数标志这是一笔扫码点菜的数据    "\"user_id\":\"2088712969xxxxxx\","+//user_id以2088开头,建议传递,此参数会影响服务card的实时刷新,可通过用户信息授权接口获取    "\"date_time\":\"2018-01-26 14:24:30\"," +      "\"action_detail\":{"+    "\"totalPrice\":\"11\","+ //总价,这里需要注意的是单位分    "\"discountPrice\":\"11\","+ //优惠金额,这里需要注意的是单位分    "\"realPrice\":\"11\","+ //实际支付,这里需要注意的是单位分    //从第三方平台进入开发者应用,后产生的数据,传入第三方平台域名,字段内容不做强制校验。    //比如当前数据是支付宝扫码后产生,传入支付宝域名alipay.com;微信传入微信域名weixin.qq.com;口碑传入口碑域名koubei.com;如果数据不是从第三方平台进入后产生的数据,设置自己的域名即可    "\"source\":\"alipay.com\","+    "\"status\":\"11\","+ //11 用户下单、等待商家确认    "\"outOrderId\":\"20180126145930111\","+ //外部订单号,这里需要注意的是,从用户下单,商家确认,待支付,支付完成,是一笔订单    "\"tableCode\":\"A05\","+ //桌号,此参数必填,该参数会影响该餐台的card更新    "\"people\":\"2\","+//消费人数,建议传递    //detailUrl参数必传,直接影响到支付宝钱包-口碑tab-我-我的订单-服务订单,点击一条数据后跳转的链接。此参数传递要求详见文档    "\"detailUrl\":\"http://17675wt546.iok.la:29682/pc/notify_url.jsp\","+    /*需要注意的是price参数的单位是分!!!*/    "\"dish\":[{\"goodsId\":\"216137\",\"price\":2,\"num\":1,\"goodsName\":\"酱爆茄子\"}],"+//菜品列表,需要注意的price参数是单位分    "\"statusDesc\":\"待商家确认\","+//状态文案说明,会影响card左上角的文案。请准确描述当前的状态    //行动点对象列表,每次更新全量覆盖,此参数会直接影响服务card上面的按钮显示。请准确描述当前的状态    //String name ; 行动名称(比如,去买单、加菜,查看详情,再来一单)    //String actionUrl 跳转URL,建议ISV自行对该url进行加签验签,以避免被恶意程序拦截篡改    //String type URL类型(官方常量 addDish(加菜) pay (去买单),官方会根据类型做业务逻辑,如果不在官方说明,请设置为空)    "\"actionUrlList\":[{\"name\":\"查看详情\",\"actionUrl\":\"http://www.ieasy360.com\",\"type\":\"\"},"    + "{\"name\":\"加菜\",\"actionUrl\":\"http://www.ieasy360.com\",\"type\":\"pay\"}],"+    //与当前订单有关系的用户,传入json数组,此参数建议传递,也会直接影响到服务card的实时刷新    //如果不是支付宝用户不需要传入,如果order_channel是alipay,强制校验,必须要传入    //userId (支付宝用户ID)    //type (用户ID行为类型),type 可以选择设置字符串value:pay,pushOrder,normal    //type各value值含义说明:    //pay:支付者    //pushOrder:下单的用户    //normal:普通用户,没有做特殊说明的都是普通用户    "\"realtionUserList\":[{\"userId\":\"2088712969xxxxxx\",\"type\":\"pushOrder\"}]"+    "}," +    //店铺关联关系。标记当前接口涉及到的店铺信息,同时如果传入的数据在口碑不存在,口碑会建立一条shop_id+outer_id+type的关联数据    //传递之后,请不要再修改此参数    "\"outer_shop_do\":{"+    "\"shop_id\":\"20170803000770000000xxxxxxxx\","+//门店id    "\"outer_id\":\"123456\","+//ISV系统中与口碑店铺shop_id关联的ISV店铺主键    "\"type\":\"http://17675wt546.iok.la:29682/pc/notify_url.jsp\""+//建议直接传入ISV的域名    "},"+          "\"entity\":\"user\"," +    "\"action_outer_id\":\"20180126145930111\"," +//每次请求的唯一id,需开发者自行保证此参数值每次请求的唯一性    "\"order_channel\":\"isv\"" +//该字段建议填写。值定义:alipay、weixin、other、isv                  "}");      AlipayOfflineProviderUseractionRecordResponse response;    try {        response = alipayClient.execute(request);          if (response.isSuccess()) {            System.out.println("调用成功" + response.getBody());        } else {            System.out.println("调用失败" + response.getBody());        }      } catch (AlipayApiException e) {        e.printStackTrace();    }finally {              }    }

(2)回流13状态(待支付)数据,代码demo: 

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",            AlipayConfig.app_id,AlipayConfig.merchant_private_key,"json","GBK",AlipayConfig.alipay_public_key,"RSA2");          AlipayOfflineProviderUseractionRecordRequest request = new AlipayOfflineProviderUseractionRecordRequest();    //request.putOtherTextParam("app_auth_token","201801BB6b27c190986b4dac9e85e66d5aec7X35");第三方应用授权    request.setBizContent("{" +    //集成阶段传递此参数,传递之后,在支付宝钱包-口碑tab-我-我的订单-服务订单中显示一条数据,正式环境默认有显示服务订单的能力,不用传递此参数    "\"is_test_user\":\"1\","+      "\"source\":\"alipay.com\"," +    "\"action_type\":\"order_dishes\"," +    "\"industry\":\"REPAST\"," +    "\"order_type\":\"order_dish\"," +//扫码点菜场景此参数必填,传递order_dish参数标志这是一笔扫码点菜的数据    "\"user_id\":\"2088712969xxxxxx\","+//user_id以2088开头,建议传递,此参数会影响服务card的实时刷新,可通过用户信息授权接口获取    "\"date_time\":\"2018-01-26 14:38:30\"," +      "\"action_detail\":{"+    "\"totalPrice\":\"33\","+ //总价,这里需要注意的是单位分    "\"discountPrice\":\"33\","+ //优惠金额,这里需要注意的是单位分    "\"realPrice\":\"33\","+ //实际支付,这里需要注意的是单位分    //从第三方平台进入开发者应用,后产生的数据,传入第三方平台域名,    //比如当前数据是支付宝扫码后产生,传入支付宝域名alipay.com    //是在微信打开后产生的数据,传入微信域名weixin.qq.com    //是在口碑打开后产生的数据,传入口碑域名koubei.com    //如果数据不是从第三方平台进入后产生的数据,设置自己的域名即可    //字段内容不做强制校验。    "\"source\":\"alipay.com\","+    "\"status\":\"13\","+ //13商家确认,用户待支付    //外部订单号,这里需要注意的是,从用户下单,商家确认,待支付,支付完成,是一笔订单    "\"outOrderId\":\"20180126145930111\","+    "\"tableCode\":\"A05\","+ //桌号,此参数必填,该参数会影响该餐台的card更新    "\"people\":\"2\","+//消费人数,建议传递    //detailUrl参数必传,直接影响到支付宝钱包-口碑tab-我-我的订单-服务订单,点击一条数据后跳转的链接    //传入要求参考文档要求    "\"detailUrl\":\"http://17675wt546.iok.la:29682/pc/notify_url.jsp\","+    //菜品列表    //goodsId菜品ID,自定义    //goodsName 菜品名称,自定义    //price 价格,单位为分,自定义    //num 点菜数量(int),自定义    "\"dish\":[{\"goodsId\":\"216137\",\"price\":2,\"num\":1,\"goodsName\":\"酱爆茄子\"}],"+//菜品列表    "\"statusDesc\":\"待支付\","+//状态文案说明,会影响card左上角的文案。请准确描述当前的状态    //行动点对象列表,每次更新全量覆盖,此参数会直接影响服务card上面的按钮显示。请准确描述当前的状态    //String name ; 行动名称(比如,去买单、加菜,查看详情,再来一单)    //String actionUrl 跳转URL,建议ISV自行对该url进行加签验签,以避免被恶意程序拦截篡改    //String type URL类型(官方常量 addDish(加菜) pay (去买单),官方会根据类型做业务逻辑,如果不在官方说明,请设置为空)    "\"actionUrlList\":[{\"name\":\"查看详情\",\"actionUrl\":\"http://www.ieasy360.com\",\"type\":\"\"},"    + "{\"name\":\"去支付\",\"actionUrl\":\"http://www.ieasy360.com\",\"type\":\"pay\"},"    + "{\"name\":\"加菜\",\"actionUrl\":\"http://www.ieasy360.com\",\"type\":\"pay\"}],"+    //与当前订单有关系的用户,传入json数组    //如果不是支付宝用户不需要传入,如果order_channel是alipay,强制校验,必须要传入    //String userId (支付宝用户ID)    //String type (用户ID行为类型),type 可以选择设置字符串value:pay,pushOrder,normal    //type各value值含义说明:    //pay:支付者    //pushOrder:下单的用户    //normal:普通用户,没有做特殊说明的都是普通用户    "\"realtionUserList\":[{\"userId\":\"2088712969xxxxxx\",\"type\":\"pushOrder\"}]"+    "}," +    //店铺关联关系。标记当前接口涉及到的店铺信息,同时如果传入的数据在口碑不存在,口碑会建立一条shop_id+outer_id+type的关联数据    //传递之后,建议不要再修改此参数    "\"outer_shop_do\":{"+    "\"shop_id\":\"20170803000770000000xxxxxxxx\","+//门店id    "\"outer_id\":\"123456\","+//ISV系统中与口碑店铺shop_id关联的ISV店铺主键    "\"type\":\"http://17675wt546.iok.la:29682/pc/notify_url.jsp\""+//建议直接传入ISV的域名    "},"+          "\"entity\":\"user\"," +    "\"action_outer_id\":\"20180126145930222\"," +//每次请求的唯一id,需开发者自行保证此参数值每次请求的唯一性    "\"order_channel\":\"isv\"" +//该字段建议填写。值定义:alipay、weixin、other、isv"}");          AlipayOfflineProviderUseractionRecordResponse response;        try {            response = alipayClient.execute(request);              if (response.isSuccess()) {                System.out.println("调用成功" + response.getBody());            } else {                System.out.println("调用失败" + response.getBody());            }          } catch (AlipayApiException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }

(3)回流14状态(已支付)数据,并清台。代码demo: 

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",            AlipayConfig.app_id,AlipayConfig.merchant_private_key,"json","GBK",AlipayConfig.alipay_public_key,"RSA2");          AlipayOfflineProviderUseractionRecordRequest request = new AlipayOfflineProviderUseractionRecordRequest();    //request.putOtherTextParam("app_auth_token","201801BB6b27c190986b4dac9e85e66d5aec7X35");第三方应用授权    request.setBizContent("{" +    //集成阶段传递此参数,传递之后,在支付宝钱包-口碑tab-我-我的订单-服务订单中显示一条数据,正式环境默认有显示服务订单的能力,不用传递此参数    "\"is_test_user\":\"1\","+      "\"source\":\"alipay.com\"," +    "\"action_type\":\"order_dishes\"," +    "\"industry\":\"REPAST\"," +    "\"order_type\":\"order_dish\"," +//扫码点菜场景此参数必填,传递order_dish参数标志这是一笔扫码点菜的数据    "\"user_id\":\"2088712969xxxxxx\","+//user_id以2088开头,建议传递,此参数会影响服务card的实时刷新,可通过用户信息授权接口获取    "\"date_time\":\"2018-01-26 14:44:30\"," +      "\"action_detail\":{"+    "\"totalPrice\":\"33\","+ //总价,这里需要注意的是单位分    "\"discountPrice\":\"33\","+ //优惠金额,这里需要注意的是单位分    "\"realPrice\":\"33\","+ //实际支付,这里需要注意的是单位分    //从第三方平台进入开发者应用,后产生的数据,传入第三方平台域名,    //比如当前数据是支付宝扫码后产生,传入支付宝域名alipay.com    //是在微信打开后产生的数据,传入微信域名weixin.qq.com    //是在口碑打开后产生的数据,传入口碑域名koubei.com    //如果数据不是从第三方平台进入后产生的数据,设置自己的域名即可    //字段内容不做强制校验。    "\"source\":\"alipay.com\","+    "\"status\":\"14\","+ //13商家确认,用户待支付          //下面三个参数在14状态下必传    "\"payTime\":\"\","+ //注意,这里是精确到毫秒,此参数传递错误,会影响清台后的服务card正常显示    "\"channel\":\"alipay\","+    "\"payOrderNo\":\"2018012321001004350510117761\","+                //外部订单号,这里需要注意的是,从用户下单,商家确认,待支付,支付完成,是一笔订单    "\"outOrderId\":\"20180126145930222\","+    "\"tableCode\":\"A05\","+ //桌号,此参数必填,该参数会影响该餐台的card更新    "\"people\":\"2\","+//消费人数,建议传递    //detailUrl参数必传,直接影响到支付宝钱包-口碑tab-我-我的订单-服务订单,点击一条数据后跳转的链接    //传入要求参考文档要求    "\"detailUrl\":\"http://17675wt546.iok.la:29682/pc/notify_url.jsp\","+    //菜品列表    //goodsId菜品ID,自定义    //goodsName 菜品名称,自定义    //price 价格,单位为分,自定义    //num 点菜数量(int),自定义    "\"dish\":[{\"goodsId\":\"216137\",\"price\":2,\"num\":1,\"goodsName\":\"酱爆茄子\"}],"+//菜品列表    "\"statusDesc\":\"已支付\","+//状态文案说明,会影响card左上角的文案。请准确描述当前的状态    //代表是否清桌,默认0。1:清桌,代表桌位可以被他人使用。0:占用,代表座位正在被人使用(比如点菜中、订单没有完结,都认为是被占用中,其他人员无法再次下单)    //对表现层的影响是,如果传了1,则只有支付用户和下单用户在传递的payTime参数内的半小时见realtionUserList参数)能看到card,其他用户为新的card。    //如果传了0,则所有用户扫桌码都会看到当前card。    "\"hasClosed\":\"1\","+    //行动点对象列表,每次更新全量覆盖,此参数会直接影响服务card上面的按钮显示。请准确描述当前的状态    //String name ; 行动名称(比如,去买单、加菜,查看详情,再来一单)    //String actionUrl 跳转URL,建议ISV自行对该url进行加签验签,以避免被恶意程序拦截篡改    //String type URL类型(官方常量 addDish(加菜) pay (去买单),官方会根据类型做业务逻辑,如果不在官方说明,请设置为空)    "\"actionUrlList\":[{\"name\":\"查看详情\",\"actionUrl\":\"http://www.ieasy360.com\",\"type\":\"pay\"},"    + "{\"name\":\"再下一单\",\"actionUrl\":\"http://www.ieasy360.com\",\"type\":\"pay\"}],"+    //与当前订单有关系的用户,传入json数组    //如果不是支付宝用户不需要传入,如果order_channel是alipay,强制校验,必须要传入    //String userId (支付宝用户ID)    //String type (用户ID行为类型),type 可以选择设置字符串value:pay,pushOrder,normal    //type各value值含义说明:    //pay:支付者    //pushOrder:下单的用户    //normal:普通用户,没有做特殊说明的都是普通用户    "\"realtionUserList\":[{\"userId\":\"2088712969xxxxxx\",\"type\":\"pay\"}]"+    "}," +    //店铺关联关系。标记当前接口涉及到的店铺信息,同时如果传入的数据在口碑不存在,口碑会建立一条shop_id+outer_id+type的关联数据    //传递之后,建议不要再修改此参数    "\"outer_shop_do\":{"+    "\"shop_id\":\"2017080300077000000044490772\","+//门店id    "\"outer_id\":\"123456\","+//ISV系统中与口碑店铺shop_id关联的ISV店铺主键    "\"type\":\"http://17675wt546.iok.la:29682/pc/notify_url.jsp\""+//建议直接传入ISV的域名    "},"+          "\"entity\":\"user\"," +    "\"action_outer_id\":\"20180126145430111\"," +//每次请求的唯一id,需开发者自行保证此参数值每次请求的唯一性    "\"order_channel\":\"isv\"" +//该字段建议填写。值定义:alipay、weixin、other、isv      "}");          AlipayOfflineProviderUseractionRecordResponse response;        try {            response = alipayClient.execute(request);              if (response.isSuccess()) {                System.out.println("调用成功" + response.getBody());            } else {                System.out.println("调用失败" + response.getBody());            }          } catch (AlipayApiException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }

4)回流15状态(一般这个状态是点餐过程中有异常情况,需要结束点餐流程的时候回流)数据。代码demo: 

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",            AlipayConfig.app_id,AlipayConfig.merchant_private_key,"json","GBK",AlipayConfig.alipay_public_key,"RSA2");          AlipayOfflineProviderUseractionRecordRequest request = new AlipayOfflineProviderUseractionRecordRequest();    //request.putOtherTextParam("app_auth_token","201801BB6b27c190986b4dac9e85e66d5aec7X35");第三方应用授权    request.setBizContent("{" +    //集成阶段传递此参数,传递之后,在支付宝钱包-口碑tab-我-我的订单-服务订单中显示一条数据,正式环境默认有显示服务订单的能力,不用传递此参数    "\"is_test_user\":\"1\","+      "\"source\":\"alipay.com\"," +    "\"action_type\":\"order_dishes\"," +    "\"industry\":\"REPAST\"," +    "\"order_type\":\"order_dish\"," +//扫码点菜场景此参数必填,传递order_dish参数标志这是一笔扫码点菜的数据    "\"user_id\":\"20887129xxxxxxxx\","+//user_id以2088开头,建议传递,此参数会影响服务card的实时刷新,可通过用户信息授权接口获取    "\"date_time\":\"2018-01-26 16:28:30\"," +      "\"action_detail\":{"+    "\"totalPrice\":\"\","+ //总价,15状态可传空,但必传要传递此参数,否则接口调用会报错    "\"discountPrice\":\"\","+ //优惠金额,15状态可传空,但必传要传递此参数,否则接口调用会报错    "\"realPrice\":\"\","+ //实际支付,15状态可传空,但必传要传递此参数,否则接口调用会报错    //从第三方平台进入开发者应用,后产生的数据,传入第三方平台域名,    //比如当前数据是支付宝扫码后产生,传入支付宝域名alipay.com    //是在微信打开后产生的数据,传入微信域名weixin.qq.com    //是在口碑打开后产生的数据,传入口碑域名koubei.com    //如果数据不是从第三方平台进入后产生的数据,设置自己的域名即可    //字段内容不做强制校验。    "\"source\":\"alipay.com\","+    "\"status\":\"15\","+ //关闭点餐流程          //外部订单号,这里需要注意的是,从用户下单,商家确认,待支付,支付完成,是一笔订单    "\"outOrderId\":\"20180126145930222\","+    "\"tableCode\":\"A05\","+ //桌号,此参数必填,该参数会影响该餐台的card更新    //detailUrl参数必传,直接影响到支付宝钱包-口碑tab-我-我的订单-服务订单,点击一条数据后跳转的链接    //传入要求参考文档要求    "\"detailUrl\":\"http://17675wt546.iok.la:29682/pc/notify_url.jsp\","+    //与当前订单有关系的用户,传入json数组    //如果不是支付宝用户不需要传入,如果order_channel是alipay,强制校验,必须要传入    //String userId (支付宝用户ID)    //String type (用户ID行为类型),type 可以选择设置字符串value:pay,pushOrder,normal    //type各value值含义说明:    //pay:支付者    //pushOrder:下单的用户    //normal:普通用户,没有做特殊说明的都是普通用户    "\"realtionUserList\":[{\"userId\":\"20887129xxxxxxxx\",\"
目录
相关文章
|
2月前
|
人工智能 数据可视化 API
零成本解锁AI算力!OpenClaw阿里云及本地部署与GLM-4.7-Flash免费调用实战保姆级教程
在使用OpenClaw(别名“大龙虾”)时,很多用户会遇到Token消耗过快的问题。2026年,智谱AI开放平台推出的GLM-4.7-Flash模型提供完全免费调用服务,该模型作为30B级SOTA模型,强化了编码能力、长程任务规划与工具协同,上下文窗口达200K,最大输出Tokens为128K,适配OpenClaw的复杂智能体任务执行需求。
6361 0
|
存储 缓存 Kubernetes
听GPT 讲Istio源代码--pilot(8)
听GPT 讲Istio源代码--pilot(8)
270 0
|
人工智能 自然语言处理 安全
90.9K star!一键部署AI聊天界面,这个开源项目让大模型交互更简单!
"像使用微信一样操作大模型!Open WebUI 让AI对话从未如此简单"
1845 0
|
9月前
|
XML JSON 数据挖掘
电商API 接口是什么?怎么使用API?
电商API是电商平台提供的数据接口,允许第三方工具与其系统交互,实现订单管理、库存同步、数据分析等自动化操作。通过API,卖家可高效管理多平台业务,提升运营效率。
|
11月前
|
数据可视化 数据挖掘 定位技术
LBA-ECO CD-06 巴西朗多尼亚州吉巴拉那河流域土壤分类图
该数据集展示了巴西朗多尼亚州吉-巴拉那河流域的土壤分类地图,比例尺为1:500,000,由EMBRAPA于1983年发布并手工数字化。主要土壤类型包括氧化土(47%)和老成土(24%),其他类型如新成土、淋溶土和继成土分别占14%、13%和2%。数据以ESRI Shapefile格式提供,并压缩为ZIP文件。代码部分演示了如何使用Python库(如leafmap)访问和可视化这些土壤数据,同时提供了研究区域的地理范围信息。
211 3
|
11月前
《仿盒马》app开发技术分享-- 逻辑优化第一弹(81)
随着上一节我们兑换商品订单相关逻辑的实现,我们的app功能已经更加的完善了,接下来我们开始对整个app缺失的小功能以及对已有的功能bug进行优化和逻辑的新增,这一节我们新增的功能是,商城订单的揽收 功能,兑换订单的取消后积分退回功能,如果不实现积分退回,就会出现用户兑换后取消订单,但是积分已经消耗的情况
172 0
|
存储 缓存 NoSQL
redis和mongodb比较
总之,Redis和MongoDB在不同的场景下有不同的优势,选择取决于应用的需求和数据特点。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
953 5
redis和mongodb比较
|
负载均衡 算法 Java
SpringCloud之Ribbon使用
通过 Ribbon,可以非常便捷的在微服务架构中实现请求负载均衡,提升系统的高可用性和伸缩性。在实际使用中,需要根据实际场景选择合适的负载均衡策略,并对其进行适当配置,以达到更佳的负载均衡效果。
732 13
|
Java C# 开发工具
9个最好用的在线编译/调试工具
电脑没有C/C++的开发环境了,只能找找在线的编译器。。IDEone不错。。。 本文要推荐9个最好用的在线编译器,以下顺序不按排名先后: 1、ideone 可以在线编译、调试C/C++,JAVA,PHP,Python,Perl,以及其他40多种编程语言。
4171 0
|
安全 开发者 UED
APP上架到应用商店需要哪些流程?
APP上架是一个涉及多个步骤和准备工作的过程,主要包括准备上架资料和遵循上架流程两个方面。
2010 1

热门文章

最新文章