public void PaymentMethodGrantAndRevoke()
{
Result<Customer> result = partnerMerchantGateway.Customer.Create(new CustomerRequest());
var token = partnerMerchantGateway.PaymentMethod.Create(new PaymentMethodRequest
{
PaymentMethodNonce = Nonce.Transactable,
CustomerId = result.Target.Id
}).Target.Token;
string code = OAuthTestHelper.CreateGrant(oauthGateway, "integration_merchant_id", "grant_payment_method");
ResultImpl<OAuthCredentials> accessTokenResult = oauthGateway.OAuth.CreateTokenFromCode(new OAuthCredentialsRequest {
Code = code,
Scope = "grant_payment_method"
});
BraintreeGateway accessTokenGateway = new BraintreeGateway(accessTokenResult.Target.AccessToken);
PaymentMethodGrantRequest grantRequest = new PaymentMethodGrantRequest()
{
AllowVaulting = false,
IncludeBillingPostalCode = true
};
Result<PaymentMethodNonce> grantResult = accessTokenGateway.PaymentMethod.Grant(token, grantRequest);
Assert.IsTrue(grantResult.IsSuccess());
Assert.IsNotNull(grantResult.Target.Nonce);
Result<PaymentMethod> revokeResult = accessTokenGateway.PaymentMethod.Revoke(token);
Assert.IsTrue(revokeResult.IsSuccess());
}
}