sirve servicios services que play pasa para juegos google desinstalo android android-pay

android - servicios - Guardar oferta en Google Wallet



que pasa si desinstalo google play services de mi android (1)

En mi aplicación, necesito implementar una oferta de ahorro desde mi aplicación a Google Wallet. Encontré este tutorial: Documentación del desarrollador- billetera , pero cuando traté de implementarlo, me encontré con un problema. Hay un código de la página:

OfferWalletObject wob = OfferWalletObject .newBuilder()...

Pero mi entorno dice que la clase no tiene este método. No hay nada escrito sobre este método en esta página: Documento de referencia del desarrollador

¿Alguien puede ayudar a resolver este problema o decir sobre otro método para guardar la oferta en Google Wallet?


He integrado con éxito Google Wallet, a partir de este video. Link

public class MainActivity extends ActionBarActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{ private GoogleApiClient mGoogleApiClient; private SupportWalletFragment mWalletFregment; private SupportWalletFragment mXmlWalletFregment; private MaskedWallet mMaskedWallet; private FullWallet mFullWallet; public static final int MASKED_WALLET_REQUEST_CODE=888; public static final int FULL_WALLET_REQUEST_CODE=889; public static final String WALLET_FRAGMENT_ID="wallet_fragment"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mWalletFregment=(SupportWalletFragment) getSupportFragmentManager() .findFragmentByTag(WALLET_FRAGMENT_ID); WalletFragmentInitParams startParams; WalletFragmentInitParams.Builder startParamsBuilder=WalletFragmentInitParams.newBuilder() .setMaskedWalletRequest(generateMaskedwalletRequest()) .setMaskedWalletRequestCode(MASKED_WALLET_REQUEST_CODE); startParams=startParamsBuilder.build(); Log.e("FREGMENT",""+mWalletFregment); if(mWalletFregment==null){ WalletFragmentStyle walletFragmentStyle=new WalletFragmentStyle() .setBuyButtonText(BuyButtonText.BUY_WITH_GOOGLE) .setBuyButtonWidth(Dimension.MATCH_PARENT); WalletFragmentOptions walletFragmentOptions=WalletFragmentOptions.newBuilder() .setEnvironment(WalletConstants.ENVIRONMENT_SANDBOX) .setFragmentStyle(walletFragmentStyle) .setTheme(WalletConstants.THEME_HOLO_LIGHT) .setMode(WalletFragmentMode.BUY_BUTTON) .build(); mWalletFregment=SupportWalletFragment.newInstance(walletFragmentOptions); mWalletFregment.initialize(startParams); } Log.e("FREGMENT",""+mWalletFregment); getSupportFragmentManager().beginTransaction() .replace(R.id.wallet_button_holder,mWalletFregment,WALLET_FRAGMENT_ID) .commit(); mGoogleApiClient=new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(Wallet.API,new Wallet.WalletOptions.Builder() .setEnvironment(WalletConstants.ENVIRONMENT_SANDBOX) .setTheme(WalletConstants.THEME_HOLO_LIGHT) .build()) .build(); setContentView(R.layout.activity_main); } @Override protected void onStart() { mGoogleApiClient.connect(); super.onStart(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case MASKED_WALLET_REQUEST_CODE : switch (resultCode){ case Activity.RESULT_OK : mMaskedWallet=data.getParcelableExtra(WalletConstants.EXTRA_MASKED_WALLET); break; case Activity.RESULT_CANCELED : break; default: Toast.makeText(this,"An Error Occured",Toast.LENGTH_LONG).show(); break; } break; case FULL_WALLET_REQUEST_CODE : switch (resultCode){ case Activity.RESULT_OK : mFullWallet= data.getParcelableExtra(WalletConstants.EXTRA_FULL_WALLET); Toast.makeText(this,mFullWallet.getProxyCard().getPan().toString(),Toast.LENGTH_LONG).show(); Wallet.Payments.notifyTransactionStatus(mGoogleApiClient, generateNotifyTransactionStatusrequest(mFullWallet.getGoogleTransactionId(), NotifyTransactionStatusRequest.Status.SUCCESS)); break; default: Toast.makeText(this,"An Error Occured",Toast.LENGTH_LONG).show(); break; } break; case WalletConstants.RESULT_ERROR: Toast.makeText(this,"An Error Occured",Toast.LENGTH_LONG).show(); break; } } public static NotifyTransactionStatusRequest generateNotifyTransactionStatusrequest( String googleTransactionId,int status ){ return NotifyTransactionStatusRequest.newBuilder() .setGoogleTransactionId(googleTransactionId) .setStatus(status) .build(); } private MaskedWalletRequest generateMaskedwalletRequest(){ MaskedWalletRequest maskWalletRequest=MaskedWalletRequest.newBuilder() .setMerchantName("Google I/O CoadeLab") .setPhoneNumberRequired(true) .setShippingAddressRequired(true) .setCurrencyCode("INR") .setEstimatedTotalPrice("10.00") .setCart(Cart.newBuilder() .setCurrencyCode("INR") .setTotalPrice("10.00") .addLineItem(LineItem.newBuilder().setCurrencyCode("INR") .setQuantity("1") .setUnitPrice("10.00") .setTotalPrice("10.00") .build() ) .build()) .build(); return maskWalletRequest; } private FullWalletRequest generateFullWalletRequest(String googleTransactionId){ FullWalletRequest fullWalletRequest=FullWalletRequest.newBuilder() .setCart(Cart.newBuilder() .setCurrencyCode("INR") .setTotalPrice("10.10") .addLineItem(LineItem.newBuilder() .setCurrencyCode("INR") .setQuantity("1") .setUnitPrice("10.00") .setTotalPrice("10.00") .build()) .addLineItem(LineItem.newBuilder() .setCurrencyCode("INR") .setDescription("Tax") .setRole(LineItem.Role.TAX) .setTotalPrice(".10") .build()) .build()) .build(); return fullWalletRequest; } public void requestFullWallet(View view){ if(mGoogleApiClient.isConnected()){ Wallet.Payments.loadFullWallet(mGoogleApiClient, generateFullWalletRequest(mMaskedWallet.getGoogleTransactionId()), FULL_WALLET_REQUEST_CODE); } } @Override public void onConnected(Bundle bundle) { } @Override public void onConnectionSuspended(int i) { } @Override public void onConnectionFailed(ConnectionResult connectionResult) { } }

Espero que esto sea útil para ti.