PayToWX.java 1.97 KB
package com.cnlive.goldenline.pay;

import android.content.Context;
import android.support.annotation.NonNull;

import com.cnlive.goldenline.Configs;
import com.cnlive.goldenline.pay.model.PayCloudResponse;
import com.cnlive.goldenline.util.ToastUtil;
import com.tencent.mm.sdk.modelpay.PayReq;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.WXAPIFactory;

/**
 * Created by gujun on 2017-04-10.
 */
public class PayToWX {

    private static Context mContext;

    /**
     * 判断是否安装了微信客户端
     */
    private static boolean isWXAppInstalledAndSupported() {
        IWXAPI msgApi = WXAPIFactory.createWXAPI(mContext, null);
        msgApi.registerApp(Configs.APP_ID);

        boolean sIsWXAppInstalledAndSupported = msgApi.isWXAppInstalled() && msgApi.isWXAppSupportAPI();

        return sIsWXAppInstalledAndSupported;
    }

    /*充值金币*/
    public static void startPay(Context context,@NonNull IWXAPI api,PayCloudResponse payCloudResponse ) {
        mContext = context;
        if(isWXAppInstalledAndSupported())
            genPayReq(api,payCloudResponse);
        else
            ToastUtil.showToast("您还未安装微信客户端");
    }

    /**
     * 生成签名参数
     *
     * @param payCloudResponse
     */
    private static void genPayReq(IWXAPI msgApi,PayCloudResponse payCloudResponse) {
        PayReq req = new PayReq();
        req.appId = payCloudResponse.getData().getWx_app().getAppid();
        req.partnerId = payCloudResponse.getData().getWx_app().getPartnerid();
        req.prepayId = payCloudResponse.getData().getWx_app().getPrepayid();
        req.packageValue = "Sign=WXPay";
        req.nonceStr = payCloudResponse.getData().getWx_app().getNoncestr();
        req.timeStamp = payCloudResponse.getData().getWx_app().getTimestamp();
        req.sign = payCloudResponse.getData().getWx_app().getSign();

        // 发起支付请求
        msgApi.registerApp(Configs.APP_ID);
        msgApi.sendReq(req);
    }

}