Ahorro de oferta en Google Wallet

En mi aplicación, necesito implementar una oferta de ahorro de mi aplicación a Google Wallet. Encontré este tutorial: https://developers.google.com/wallet/objects/savetowalletnative#4_create_an_object , pero cuando intenté implementarlo, encontré 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: https://developer.android.com/reference/com/google/android/gms/wallet/OfferWalletObject.html

¿Puede alguien ayudar a resolver este problema o decir acerca de otro método para guardar la oferta en la cartera de Google.

He integrado Google Wallet correctamente, desde este video. Enlazar

  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 usted.

  • No recibo la actualización de 'com.google.android.gms: play-services-wallet: 8.4.0' para los servicios de reproducción de Google en sdk
  • Android: inApp confirmación de recibo de compra google play
  • Android Pay - La aplicación de muestra no funciona ("No disponible aquí")
  • ERROR_CODE_MERCHANT_ACCOUNT_ERROR (405) mientras probaba Android Pay en el entorno de prueba utilizando el código de ejemplo de Google
  • Integración de Google Wallet en la aplicación Android
  • ¿Cómo la emulación de tarjeta basada en software (HCE) garantiza la seguridad NFC?
  • Google Wallet para productos digitales API vs Google Play Facturación en aplicaciones
  • Se ha rechazado una tasa increíblemente alta de "tarjeta del cliente" en la API de suscripción
  • Obtener el historial de transacciones de Android Pay mediante API?
  • ¿Cómo probar Android Pay con un APK de depuración?
  • Android Pay - Pruebas desde fuera de EE.UU.
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.