谷歌登录加支付

环境

因为项目需要 不能使用google for untiy ,所以使用了aar作为插件导入
android studio 3.2 和 unity2018.3.8

支付代码

安卓studio下载加环境配置请自行百度参考他人

//文中 ConstCode.TGA 等价 static String TGA="google",方便日志查看
public class GooglePay {
   
    private static Activity _activity;
    private static BillingClient billingClient;
    private static List<String> skulList = new ArrayList<>();
    private static boolean isConnect;
    private static SkuDetails skuDetails;
    private static String serverUrl;

    private static PurchasesUpdatedListener purchasesUpdatedListener = new PurchasesUpdatedListener() {
   
        /*
         *购买更新
         */
        @Override
        public void onPurchasesUpdated(BillingResult billingResult, List<Purchase> purchases) {
   
            // To be implemented in a later section.
            Log.i(ConstCode.TGA, "onPurchasesUpdated: ");
            if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK && purchases != null) {
   
                /**
                 * 购买成功
                 */
                for (final Purchase purchase : purchases) {
   
                    if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) {
   
                        if (!purchase.isAcknowledged()) {
   
                            acknowledgePurchase(purchase);
                        }
                    }
                }
            } else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED) {
   
                // Handle an error caused by a user cancelling the purchase flow.
                //处理由用户取消购买流程引起的错误
                Toast.makeText(_activity, "User cancel", Toast.LENGTH_SHORT).show();
            } else {
   
                // Handle any other error codes.
                Log.i(ConstCode.TGA, "onPurchasesUpdated: 用户支付错误:" + billingResult.getResponseCode());
            }
        }
    };

    //获取pay client
    private static void getBillingClient() {
   
        billingClient = BillingClient.newBuilder(_activity)
                .setListener(purchasesUpdatedListener)
                .enablePendingPurchases()
                .build();
        billingClient.startConnection(new BillingClientStateListener() {
   
            /*
             *计费设置完成
             */
            @Override
            public void onBillingSetupFinished(BillingResult billingResult) {
   
                if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
   
                    isConnect = true;
                    queryAndConsumePurchase();
                    Log.i(ConstCode.TGA, "onBillingSetupFinished: 谷歌支付链接成功");

                } else {
   
                    isConnect = false;
                    Log.i(ConstCode.TGA, "onBillingSetupFinished: 谷歌支付链接失败 错误码:" + billingResult.getResponseCode());
                }
            }

            @Override
            public void onBillingServiceDisconnected() {
   
                Log.i(ConstCode.TGA, "onBillingServiceDisconnected");
                isConnect = false;
            }
        });
    }

    /*
     *获取商品详情并支付
     */
    private static void getSkuDetail(String goodId) {
   
        skulList.clear();
        skulList.add(goodId);
        SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
        params.setSkusList(skulList).setType(BillingClient.SkuType.INAPP);
        billingClient.querySkuDetailsAsync(params.build(),
                new SkuDetailsResponseListener() {
   
                    /*
                     *商品查询响应
                     */
                    @Override
                    public void onSkuDetailsResponse(BillingResult billingResult,
                                                     List<SkuDetails> skuDetailsList) {
   
                        // Process the result.
                        Log.i(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值