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
- ¿Cómo probar Android Pay con un APK de depuración?
- Integración de Google Wallet en la aplicación Android
- Cómo mantener separado el desarrollo de Android de la cuenta privada
- ID de pedido de Google Play actualizado a un nuevo formato
- ¿Cómo usar Android api pagar con nfc?
¿Puede alguien ayudar a resolver este problema o decir acerca de otro método para guardar la oferta en la cartera de Google.
- Android: inApp confirmación de recibo de compra google play
- Android Pay - Pruebas desde fuera de EE.UU.
- ¿Cómo la emulación de tarjeta basada en software (HCE) garantiza la seguridad NFC?
- Android paytm como la implementación de cartera
- Android Pay - La aplicación de muestra no funciona ("No disponible aquí")
- Algo ha cambiado en las facturas en la aplicación en Android
- ¿Cómo realizar la configuración del modo de producción de Google Wallet desde el modo Sandbox en Android?
- Se ha rechazado una tasa increíblemente alta de "tarjeta del cliente" en la API de suscripción
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.
- GCM: java.lang.noclassdeffounderror: com.google.android.gcm.GCMRegistrar
- Las dependencias circulares no pueden existir en RelativeLayout, android?