更新记录

1.1.0(2022-11-26)

1.新增交易后返回状态 2.新增自定义打印插件

1.0.0(2022-11-25)

智能pos外调交易接口


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择


调用富商智能pos外调交易插件及自定义打印

一.获取本地uni-app原生插件

  1. 下载原生插件(zip格式),解压到HBuilderX的uni-app项目下的“nativeplugins”目录(如不存在则创建)
  2. uni-app原生插件本地配置 <如果是云端插件请选择云端插件> img_1.png

二.插件使用方式

/**
 * 打开第三方Activity
 */
const pay = uni.requireNativePlugin('get-printer-pay') //交易插件
const print = uni.requireNativePlugin('get-printer-print') //自定义打印插件
export default {
    data() {
        return {
            msg: '',
            data: ''
        }
    },
    onShow() {
        //此处可作为点击事件使用
        /**
         * e.reason //交易失败信息
         * e.msg //返回状态  ok or  err
         */
        if (thsi.msg = 21) {
            pay.content(e => {
                this.data = e //获取第三方activity返回值
            })
        }
    },
    methods: {
        bnt() {
            pay.payment({
                transType: 21, //交易类型 必填字段:是 类型:int
                amount: "100", //金额 100 = 1 元 必填字段:是 类型:string
                orderNumber: "00000018", //自定义订单号不能超过60个字节 必填字段:否 类型:string
                version: "1.0.7" //版本号 必填字段:是 类型:string
            }, (e) => {
                var msg = e.transType //获取交易类型 为了配合onHide生命周期使用获取返回值
            });
        },
        print() {
           /**
            *
            * content: "内容", //文字传text文字,图片传path路径,一维码传content,二维码传content
            * contenttype: "txt", //文字传txt,图片传bmp,一维码传 one-dimension,二维码传 two-dimension
            *
            * 文字模版(必传):大小  左右中  粗体 斜体
            * size:"1",  //大小 1-3 三种打印大小(s(小号),m(中号),l(大号)), 1小号,2正常,3大号, 默认2
            * position:"center", //位置center居中right靠右 left 靠左,默认靠左
            * bold:"0", //是否加粗 0否1是
            * italic:"0", //是否斜体 0否1是
            *
            * 图片模板(必传):
            * position, 位置center居中right靠右 left 靠左, 默认居中
            *
            * 一维码(必传):
            * position, 位置center居中right靠右 left 靠左,默认居中
            * height  一维码高度, 可选1-3 默认为2
            *
            * 二维码(必传):
            * size:"1",  大小 1-3 三种打印大小 默认为2
            * position:"center", 位置center居中right靠右 left 靠左 默认居中
            *
            * 其他参数
            * height: "-1", // 向下移动
            * offset: "0", //使不在一条直线上
            */
           var data = {
                spos: [
                    {
                        bold: "0",
                        content: "内容",
                        contenttype: "txt",
                        italic: "1",
                        position: "center",
                        size: "2"
                    },
                    {
                       position: "center",
                       content: "/sdcard/tmp/pay.bmp", //路径
                       contenttype: "bmp", //图片
                       bold: "0",
                       height: "-1",
                       italic: "0",
                       offset: "0",
                       size: "3"
                    }
                ]
            }
            print.setPrint({
                data: JSON.stringify(data)  //必须是string类型
            })
        }
    }
}

传入入字段

//银行卡消费
{
    transType:21  //int型 固定填21 
    amount:"100" // 交易金额  1元 = 100
    orderNumber:"00000012" // 自定义订单号
}
//整单退款 如上
{
    transType: 22
    oldTrace:"交易凭证号"     //交易时收据上的凭证号
    amount: "金额"
    isManagePwd: "false" //撤销时不显示输入主管密码(false-不显示输入密码,true-显示主管输入密码)
    orderNumber:"自定义自定义订单号"
}
//部分退款
{
    transType: 23
    amount: "金额"
    orderNumber:"自定义订单号"
}
//扫码付款
{
    transType: 112
    isPrintTicket: "trur or false" // 为true时调用打印;为false时不调用打印
    amount: "金额"
    orderNumber: "订单号"
    isFrontCamera:"false"  // 是否打开前置摄像头(传true时,打开前置。传false不打开前置)
}
//批量交易查询
{
    transType: 71
    Time:"yyyyMMdd"  //查询日期默认返回当天数据  年月日  yyyyMMdd 是否必填字段:否
}

四.返回字段说明

class module {
    String amount;//金额
    String traceNo;//凭证号(流水号)
    String batchNo;//批次号
    String cardNo;//卡号
    String date;//日期
    String time;//时间
    String merchantld;//商户号
    String terminalld;//终端号
    String merchantName;//商户名
    String transactionType;//交易类型
    String referenceNo; //卡号
    String type; //卡类型 (如:借记卡,信用卡)
    String issue; //发卡行
    String termAlias; //终端别名
    String orderNumber; //消费第三方订单号
    String oldReferenceNo; //全额退款原参考号(撤销原消费那笔的参考号)
    String oldOrderNumber; //全额退款第三方订单号
    String backOldReferenceNo; //部分退款原参考号
    String tuiOldOrderNumber; //部分退款第三方订单号
    String transid; //渠道订单号
    /*----------------------------*/
}
#jsons;//批量查询返回数据

json字段名             类型         数据                   列如
name                String      交易名 
amount              String      交易金额    
pan             String      主帐号(卡号)当是微信或者支付宝消费的时候返回的是二维码的id。    
trace               String      凭证号 
authorizationCode   String      授权码 
referenceNo     string      参考号         241305734110
date                String      时间          1122
time                String      日期              
status              String      交易状态            失败、成功、已撤销、已退款
orderNumber     string      订单号第三方          00000018
transid             String      渠道订单号           扫码交易时存在
termAlias       string      终端别名            测试商户
merchantld      string      商户号         818290059980727
terminalld      string      终端号         61099590
merchantName        string      商户名         测试账号
estimate                string      返回状态             ok  或  err
reason                  string      错误信息            只有交易失败时才有

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

本插件时调用第三方app的activity页面并向原生app传递参数,接收原生app传递的的数据。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问