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.

  • Obtener el historial de transacciones de Android Pay mediante API?
  • ¿Cómo implementar los pagos NFC?
  • Google Wallet para productos digitales API vs Google Play Facturación en aplicaciones
  • Android Pay: Public, Generación de pares de claves privadas (Curva elíptica con NISTP-256)
  • Google Play no puede vender aplicaciones
  • 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
  • CreateWalletObjectsRequest no aparece en la API de com.google.android.gms.wallet
  • ¿Cómo detectar el pago NFC en la aplicación?
  • Enlace a Apple Wallet o Android Pay desde una aplicación web MVC
  • ERROR_CODE_MERCHANT_ACCOUNT_ERROR (405) mientras probaba Android Pay en el entorno de prueba utilizando el código de ejemplo de Google
  • Identifying refunded Play Store descargas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.