移动BOS框架EAS后台和云之家入口集成发票云小程序的移动报销实现开发笔记

本文档记录了移动BOS(EAS)后台与云之家集成开发发票云小程序的整个过程,包括云之家的申请、移动BOS的搭建、后台和前端的开发工作,以及对接发票云的参数准备。在开发过程中,详细阐述了环境搭建、工具类创建、JS脚本编写、页面布局与功能实现,以及与发票云的接口对接步骤。
摘要由CSDN通过智能技术生成

1、准备工作

云之家

申请云之家

云之家官网
1、获取云之家eid
2、同步eas和云之家用户
参考文档:云之家同步eas用户参考文档

移动BOS

搭建移动bos

移动bos搭建文档

2、开发工作

后台篇

bos环境搭建

1、安装bos工具
2、启动eas服务器管理控制台的bim服务器
3、从eas服务器更新bos工具
4、导入解决方案
此处遇到个问题,新搭建的eas服务器,更新解决方案报错,具体看日志发现,是路径中gl模块有个脚本是中文命名导致更新失败,删除失败日志对应的脚本文件即可正常导入解决方案

实现工具类

1、创建后台类
例:后台类名com.kingdee.eas.cp.bc.app.mobile.MInvoceTicketUtil
2、后台类中创建具体方法供调用
具体调用例:
后台代码:

public static CoreBillBaseInfo invokeInvoiceSeiralNos(Context ctx,String companyid,String invoiceTicketNos,String jsonData) throws EASBizException, BOSException, Exception{
   
		CompanyOrgUnitInfo companyOrgUnitInfo = CompanyOrgUnitFactory
		.getLocalInstance(ctx).getCompanyOrgUnitInfo(
				new ObjectUuidPK(BOSUuid.read(companyid)));
		String userkey = getUserkey(ctx, companyOrgUnitInfo);
		String client_id = companyOrgUnitInfo.getAuthorizationCode();
		String client_sec = companyOrgUnitInfo.getAuthorizationKey();
		long timestamp = new Date().getTime();
		String sign = MD5Util.getMD5String(client_id+client_sec+timestamp);
		JSONObject json = new JSONObject();
		json.put("userKey", userkey);
		json.put("timestamp", timestamp);
		json.put("sign", sign);
		json.put("client_id", client_id);
		json.put("fid", invoiceTicketNos);
		String url = getValFromPro("webUrl")+getValFromPro("viewInviceDetail");
		JSONObject returnJson = sendPost(url, json);
		if ("0000".equals(returnJson.getString("errcode"))) {
   
			 JSONArray invokeDetaildata = returnJson.getJSONArray("data");
			  return dealData(ctx,invokeDetaildata, JSONUtils.convertJsonToObject(ctx, jsonData, BizAccountBillInfo.class));
		} else {
   
			String error_description = returnJson
					.getString("description");
			throw new BOSException(error_description);
		}
	}

移动bos中后台调用方法:

//定义引入变量
var easNames =JavaImporter();
//引入指定包
easNames.importPackage(Packages.java.util);
easNames.importPackage(Packages.com.kingdee.util);
easNames.importPackage(Packages.com.kingdee.eas.cp.bc);
easNames.importPackage(Packages.com.kingdee.eas.cp.bc.app.mobile);

//使用引用作用域
with(easNames){
   
    //获取服务端上下文
    var ctx = context.getBosContext();
	
    var companyId=com.kingdee.eas.util.app.ContextUtil.getCurrentFIUnit(context.getBosContext()).get("id").toString();
	
    var invoiceSeiralNos = context.getParamAsString(0);
    
    var info = context.getParamAsString(1);
    

    var jsonArray = MInvoceTicketUtil.invokeInvoiceSeiralNos(ctx,companyId,invoiceSeiralNos,info);  
    
  	
    context.setResult(jsonArray);
}

前台调用后台方法:

_this.importInvoce = function(event) {
   
	var param = [];
	var success = function(result) {
   
		XuntongJSBridge.call('launchMiniprogram', result, function(returnValue) {
   
			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值