void androidSpadePay(HTPayInfo payInfo)
    {
        AndroidJavaClass  jc        = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo        = jc.GetStatic <AndroidJavaObject>("currentActivity");
        HTPayExtend       extendPay = new HTPayExtend();

        extendPay.is_pay_month = payInfo.isPayMonth ? (short)1 : (short)0;
        string extend = extendPay.toJson();

        jo.Call("Purchase", payInfo.price, payInfo.count, payInfo.productId, payInfo.serverId, payInfo.productName, payInfo.productDes, payInfo.url, payInfo.appOrderId, extend);
    }
    //支付
    public void Pay(string strMsg)
    {
        HTPayInfo payInfo = JSON.Instance.ToObject <HTPayInfo>(strMsg);

        if (payInfo != null)
        {
            payInfo.price = payInfo.price / 100;
#if UNITY_IPHONE
            Purchase(payInfo.price, payInfo.count, payInfo.productId, payInfo.serverId, payInfo.productName, payInfo.productDes, payInfo.url, payInfo.appOrderId);
#elif UNITY_ANDROID
            androidSpadePay(payInfo);
#endif
        }
    }
    string generateSpade(PayData data)
    {
        HTPayInfo   info = new HTPayInfo();
        AccountData ad   = Native.mInstace.m_thridParty.GetAccountData();

        info.price       = m_data.Price;
        info.count       = 1;
        info.productId   = m_data.ID.ToString();
        info.productName = string.IsNullOrEmpty(m_data.SpadeName) ? " " : m_data.SpadeName;
        info.productDes  = string.IsNullOrEmpty(m_data.SpadeDes) ? " " : m_data.SpadeDes;
        info.serverId    = "";
        info.url         = ad.payCallback;
        info.appOrderId  = data.orderId;
        info.isPayMonth  = m_data.Type == 0;

        return(fastJSON.JSON.Instance.ToJSON(info));
    }