In my app, I need to implement a saving offer from my app to Google Wallet. I found this tutorial: Developer Documentation- wallet , but when I tried to implement it, I encountered a problem. There is code from page:
OfferWalletObject wob = OfferWalletObject .newBuilder()...
But my environment says that class doesn't have this method. There is nothing written about this method in this page: Developer Reference Document
Can someone help to solve this problem or say about other method to save offer in Google wallet.
When desktop visitors on your site click the Save to Google Pay button, a lightbox appears with a preview of their Pass. Here, they can confirm the save. After confirmation, the Pass appears in their Google Pay app.
Google Pay and Wallet ConsoleEnable fast, simple checkout, passes, and more within your Android app or website.
I have integrated Google Wallet successfully, from this 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) { } }
Hope this is useful for you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With