更新记录
1.1.1(2021-08-03)
1.更新新版sdk 2.更新文档
平台兼容性
| Android | Android CPU类型 | iOS | 
|---|---|---|
| 适用版本区间:9.0 - 11.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 14 | 
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios    
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
以下插件都要配合服务端配合使用; 一般流程基本都是这个套路 1.app 向服务端申请一个请求参数 2 app 根据这个参数调起第三方APP 3app向服务端查询结果,并且更新数据库;
一.银联支付
var btModule = uni.requireNativePlugin("ybt-BTModule");
const installed = btModule.checkWalletInstalled()   //检查是否安装
//sdk 会自动处理,是否安装云闪付,跳转情况;
unionPay(order).then(res => {        //代码演示仅供参考,从服务端发起支付,并且返回tn号 参考银联文档(https://open.unionpay.com/tjweb/acproduct/APIList?apiservId=568&acpAPIId=740&bussType=1)
//后端代码demo地址 (https://open.unionpay.com/tjweb/acproduct/list?apiSvcId=449&index=5)
btModule.unionPay({
mode: "00",             // 00 生成环境 ,01测试环境 , app 只能生成环境
scheme: "****",    //ios才生效的scheme码 ,必须和后端的return:url 一致,否则iOS不能跳回
tn: res.data.tn   //服务器返回的tn号
}, (obj) => {
// 查询订单                  //这里统一查询订单情况,自己实现
if (obj.code == 'success') {
// 查询订单
//resolve("支付成功")
} else {
reject(obj.message);  //取消支付 支付失败等等
        }
    })
})
二.支付宝 身份认证
    此SDK 还支持 支持支付宝 人脸认证SDK 集成,不依赖支付宝的安装
    ① SDK 集成方案
    var bizCode = btModule.bizCode();   //获取bizCode 决定是否拉起支付宝客户端,这里可以手动指定
    aliPayCertification({                  //后端代码实现,仅供参考,参考官方文档 (https://opendocs.alipay.com/open/20181012100420932508/00ze52)         
        bizCode:bizCode,
        returnUrl:"*******"   //例:schema://abc  (app 的 schema码)
    }).then(res => {
        res.bizCode = bizCode
        me.certifyId = res.certifyId;
        btModule.aliPayCertification({       
            url:res.url,     //后台返回的url地址
            certifyId:res.certifyId  //后台返回的certifyId,
            biz:bizCode
        },(obj)=>{
        })
    })
    ② H5简易方案 
       简单,容易,但是必须依赖支付宝客户端,完美注意者选择第一种更佳,可以手动强制跳转内置页面,不跳转     
       const url = "://platformapi/startapp?appId=20000067&url=" + encodeURIComponent(res.url)  //这里的URL 就是后端生成的URL 
       plus.runtime.openURL("alipays" + url)  //这里注意区分 ios 是alipays,  android 是alipay
    -------------------------------返回结果-----------------------------
    分两种情况如果
       第一种:支付宝客户端回来;第二张:如果未安装客户端,可以设置自定义参数更新;
       onShow() {
        var me = this;
        setTimeout(()=>{
            var args = plus.runtime.arguments;
            if (args == '******') {    //上面传的returnurl
                //去后端查询人脸识别认证结果,通过certifyId
            }
        },50)
       };  ----------springboot服务端代码,简单demo,仅供参考,请结合实际业务--------------- 例:银联如果获取银联的tn号,必须参考实际文档 @PostMapping(value = "/order.do") public AjaxResult order(@RequestBody PaymentParam order){
    //组织请求报文
    net.sf.json.JSONObject json = new  net.sf.json.JSONObject();
    json.put("mid", unionPayBean.getMid());
    json.put("tid", unionPayBean.getTid());
    json.put("msgType", unionPayBean.getMsgType_order());
    json.put("msgSrc", unionPayBean.getMsgSrc());
    json.put("instMid", unionPayBean.getInstMid());
    Snowflake snowflake =IdUtil.createSnowflake(1,1);
    long id = snowflake.nextId();
    String orderId = msgSrcId+order.getOrderInfo().getOutTradeNo().substring(3)+String.valueOf(id);
    json.put("merOrderId", orderId.substring(0,32));
    json.put("totalAmount", order.getOrderInfo().getTotalFee());
    json.put("tradeType", "APP");
    //是否要在商户系统下单,看商户需求  createBill()
    json.put("requestTimestamp", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
    json.put("signType", "SHA256");
    Map<String, String> paramsMap = Util.jsonToMap(json);
    paramsMap.put("sign", Util.makeSign(unionPayBean.getMd5Key(), paramsMap));
    String strReqJsonStr = JSON.toJSONString(paramsMap);
    JSONObject resultMap = new JSONObject();
    try {
        String content = HttpRequest.post(unionPayBean.getUrl())
                .body(strReqJsonStr)
                .execute().body();
        //转换成json对象
        com.alibaba.fastjson.JSONObject respJson = JSON.parseObject(content);
        String resultCode = respJson.getString("errCode");
        if("SUCCESS".equals(resultCode)){
            return  AjaxResult.success(respJson.get("appPayRequest"));  //tn号返回给客户端即可
        }
    } catch (Exception e) {
        e.printStackTrace();
        return AjaxResult.error(e.toString());
    }
    return AjaxResult.error("支付失败");
}------------------------------------分割线----------------------------------
例:java 获取实名认证的certifyId,必须参考实际文档,仅供参考,请结合实际业务 public AjaxResult alipayCertification(@RequestParam String bizCode,@RequestParam String returnUrl) { try { RealNameAuth realNameAuth = iRealNameAuthService.selectRealNameAuthByRiderId(riderId); if(realNameAuth==null){ throw new BaseException("请先补充身份信息"); } JSONObject jsonObject = new JSONObject(); JSONObject jsonObjectPerson = new JSONObject(); jsonObjectPerson.put("identity_type","CERT_INFO"); jsonObjectPerson.put("cert_name",realNameAuth.getRealName()); jsonObjectPerson.put("cert_no",realNameAuth.getIdCardno()); jsonObjectPerson.put("phone_no",realNameAuth.getPhonenumber()); jsonObjectPerson.put("cert_type","IDENTITY_CARD"); jsonObject.put("outer_order_no", IdUtil.objectId()); jsonObject.put("biz_code",bizCode); jsonObject.put("identity_param",jsonObjectPerson); JSONObject urlObject = new JSONObject(); urlObject.put("return_url", returnUrl); jsonObject.put("merchant_config",urlObject);
        String str =  jsonObject.toJSONString();
        AlipayUserCertifyOpenInitializeRequest request = new AlipayUserCertifyOpenInitializeRequest();
        request.setBizContent(str);
        AlipayClient client = AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient();
        AlipayUserCertifyOpenInitializeResponse response= client.certificateExecute(request);
        AlipayUserCertifyOpenCertifyRequest request1 = new AlipayUserCertifyOpenCertifyRequest();
        JSONObject bizContentObj = new JSONObject ();
        bizContentObj.put ("certify_id" ,  response.getCertifyId() );
        request1.setBizContent(bizContentObj.toString ());
        AlipayUserCertifyOpenCertifyResponse response1 = client.pageExecute(request1,"GET");
        if(response.isSuccess()){
            JSONObject resObject = new JSONObject();
            resObject.put("certifyId",response.getCertifyId());   //certifyId返回给客户端,再去调起支付宝客户端
            resObject.put("url",response1.getBody());
            return AjaxResult.success(resObject);
        } else {
            throw new AlipayApiException("参数错误");
        }
    } catch (AlipayApiException e) {
        return AjaxResult.error(e.getMessage());
    }
}注意事项: 1.manifest.json 配置一下 schemes,和后端的return_url 保持一致

 
                                                                     
                                                                                                                                                 收藏人数:
                                                                        收藏人数:
                                     购买(
                                                        购买( 试用
                                                                                                                试用
                                                     赞赏(0)
                                        赞赏(0)
                                     
                                             
                                             
                                             下载 6
 下载 6
                 赞赏 0
 赞赏 0
                 
             
                     下载 12249
                    下载 12249 
                 
             
                     
             
                     
             
                     
             
                     
             
                     
             
                     
             
                     
             
                     
             
                     
             
                     赞赏 7
                        赞赏 7 
                     
             
                     
             
                     
             
                     
             
                     
                         赞赏
                                赞赏
                             
             京公网安备:11010802035340号
京公网安备:11010802035340号