云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

Android app接入微信人脸支付详解,微信如何人脸支付(安卓微信如何人脸支付)

准备工作

1、注册微信支付商户账号:首先需要在微信支付官网注册一个商户账号,并完成实名认证。

(图片来源网络,侵删)

2、开通微信支付功能:在商户平台中开通微信支付功能,获取到商户号、应用ID等信息。

3、下载微信SDK:从微信开放平台下载对应的Android SDK,并将其导入到项目中。

4、配置微信支付参数:在项目中配置微信支付的相关参数,如appId、timeStamp、nonceStr、package等。

接入微信人脸支付

1、初始化微信SDK:在Application中初始化微信SDK,设置相关回调接口。

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // 初始化微信SDK
        Tencent.init(this);
    }
}

2、申请人脸识别权限:在AndroidManifest.xml中申请人脸识别权限。

<usespermission android:name="android.permission.CAMERA" />
<usesfeature android:name="android.hardware.camera" />
<usesfeature android:name="android.hardware.camera.autofocus" />
<usespermission android:name="android.permission.RECORD_AUDIO" />
<usespermission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<usespermission android:name="android.permission.READ_EXTERNAL_STORAGE" />

3、实现人脸识别结果的回调接口:实现IWXAPIEventHandler接口,重写onPayResult方法。

public class MyWXPayEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {
    private WXPay mWXPay;
    private IWXAPI api;
    private static final int REQUEST_CODE_FACE = 0; // 请求码,用于识别结果回调时判断是哪个请求的结果
    private static final String FACE_PAY_URL = "https://api.mch.weixin.qq.com/facepay/transaction"; // 人脸支付接口地址
    private static final String FACE_PAY_SUCCESS = "SUCCESS"; // 人脸支付成功标识
    private static final String FACE_PAY_FAIL = "FAIL"; // 人脸支付失败标识
    private static final String FACE_PAY_UNKNOWN = "UNKNOWN"; // 未知状态标识
    private static final String FACE_PAY_CANCEL = "CANCEL"; // 取消支付标识
    private static final String FACE_PAY_USER_CANCEL = "USER_CANCEL"; // 用户取消支付标识
    private static final String FACE_PAY_OTHER = "OTHER"; // 其他错误标识
    private static final String FACE_PAY_TIPS = "请对准摄像头进行人脸识别"; // 提示信息
    private static final int FACE_PAY_TIPS_TIME = 2000; // 提示信息显示时长(毫秒)
    private boolean isFacePaying = false; // 是否正在进行人脸支付操作的标志位
    private String facePayErrorMsg = ""; // 人脸支付错误信息
    private String facePayResult = FACE_PAY_UNKNOWN; // 人脸支付结果标识
    private long facePayTimeStamp = System.currentTimeMillis(); // 人脸支付时间戳
    private String facePayNonceStr = ""; // 人脸支付随机字符串
    private String facePayPackage = "facepay"; // 人脸支付包名,固定为"facepay"
    private String facePaySignType = "MD5"; // 人脸支付签名类型,固定为"MD5"
    private String facePaySpbillCreateIp = "127.0.0.1"; // 人脸支付终端IP地址,根据实际情况填写
    private String facePayTradeType = "JSAPI"; // 人脸支付交易类型,固定为"JSAPI"
    private String facePayAppid = "your app id"; // 你的appId,替换为你自己的appId
    private String facePayMchId = "your mch id"; // 你的商户号,替换为你自己的商户号
    private String facePaySubAppid = "your sub app id"; // 你的子商户号,替换为你自己的子商户号(如果有的话)
    private String facePaySubMchId = "your sub mch id"; // 你的子商户号,替换为你自己的子商户号(如果有的话)
    private String facePayKey = "your key"; // 你的人脸支付密钥,替换为你自己的密钥(由微信商户平台生成)
    private int facePaySceneId = WechatConstants.FACEPAY_SCENE; // 人脸支付场景ID,固定为WechatConstants.FACEPAY_SCENE(值为1006)
    private int facePayAmount = 1; // 人脸支付金额,单位为分,根据实际情况填写
    private int facePayCurrency = WechatConstants.CNY; // 人脸支付货币类型,固定为WechatConstants.CNY(值为156)
    private int facePayRetCode = 1; // 人脸支付返回码,初始值为1(表示未开始执行)
    private int facePayErrCode = 1; // 人脸支付错误码,初始值为1(表示未开始执行)
    private int facePayTimeOut = 1; // 人脸支付超时时间(毫秒),初始值为1(表示未开始执行)
    private int facePayRespCode = 1; // 人脸支付响应码,初始值为1(表示未开始执行)
    private int facePayRespMsgId = 1; // 人脸支付响应消息ID,初始值为1(表示未开始执行)
    private int facePayChannelType = WechatConstants.CHANNEL_TYPE; // 人脸支付渠道类型,固定为WechatConstants.CHANNEL_TYPE(值为4)
    private int facePayNotifyId = 1; // 人脸支付通知ID,初始值为1(表示未开始执行)
    private int facePayTradeNo = 1; // 人脸支付订单号,初始值为1(表示未开始执行)
    private int facePayAuthType = WechatConstants.AUTHTYPE_IDENTITY; // 人脸支付认证类型,固定为WechatConstants.AUTHTYPE_IDENTITY(值为3)
    private int facePayAuthState = WechatConstants.AUTHSTATE_FAILED; // 人脸支付认证状态,初始值为WechatConstants.AUTHSTATE_FAILED(表示未开始执行)
    // ...其他成员变量...
}

4、启动人脸识别流程:在需要启动人脸识别的地方调用startFacePay方法。

public void startFacePay() {
    if (!isFacePaying) { // 如果当前没有正在进行的人脸支付操作,则可以启动新的人脸识别流程
        isFacePaying = true; // 将标志位设置为true,表示正在进行人脸识别操作
        showFaceTips(); // 显示提示信息,提示用户对准摄像头进行人脸识别操作
        requestFaceAuth(); // 请求人脸识别认证操作,传入相应的参数和回调接口实例化对象(this)作为参数值即可启动人脸识别流程了。
打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《Android app接入微信人脸支付详解,微信如何人脸支付(安卓微信如何人脸支付)》
文章链接:https://www.yunzhuji.net/jishujiaocheng/52035.html

评论

  • 验证码