Skip to content

Commit

Permalink
Merge pull request #280 from blockchyp/feature/CHYP-3619
Browse files Browse the repository at this point in the history
Feature/chyp 3619
  • Loading branch information
devops-blockchyp committed Sep 12, 2024
1 parent 16cb3d9 commit 86bb6de
Show file tree
Hide file tree
Showing 8 changed files with 217 additions and 2 deletions.
79 changes: 79 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6522,6 +6522,85 @@ class ExampleClass {



#### Add Gateway Merchant



* **API Credential Types:** Partner
* **Required Role:** Gateway Boarding

This is a partner level API that can be used to manually board gateway merchants. Use this API in conjunction
with Platform Configuration to instantly board gateway merchants. Note that most partners don't have
permission to do this and are unlikely to get it.

Settings can be changed by using the Update Merchant API.



##### From Objective-C:

```objective-c
#import <Foundation/Foundation.h>
#import <BlockChyp/BlockChyp.h>

int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

BlockChyp *client = [[BlockChyp alloc]
initWithApiKey:@"SPBXTSDAQVFFX5MGQMUMIRINVI"
bearerToken:@"7BXBTBUPSL3BP7I6Z2CFU6H3WQ"
signingKey:@"bcae3708938cb8004ab1278e6c0fcd68f9d815e1c3c86228d028242b147af58e"];

NSMutableDictionary *request = [[NSMutableDictionary alloc] init];
var profile: [String:Any] = [:]
profile["dbaName"] = "DBA Name"
profile["companyName"] = "Corporate Entity Name"
request["profile"] = profile
[client addGatewayMerchantWithRequest:request handler:^(NSDictionary *request, NSDictionary *response, NSError *error) {
NSNumber *success = [response objectForKey:@"success"];
if (success.boolValue) {
NSLog(@"Success");
}
}];
[pool drain];
return 0;
}

```

##### From Swift:

```swift
import BlockChyp

class ExampleClass {

func example() {
let client = BlockChyp.init(
apiKey: "ZN5WQGX5PN6BE2MF75CEAWRETM",
bearerToken: "SVVHJCYVFWJR2QKYKFWMZQVZL4",
signingKey: "7c1b9e4d1308e7bbe76a1920ddd9449ce50af2629f6bb70ed3c110365935970b"
)

var request: [String:Any] = [:]
var profile: [String:Any] = [:]
profile["dbaName"] = "DBA Name"
profile["companyName"] = "Corporate Entity Name"
request["profile"] = profile
client.addGatewayMerchant(withRequest: request, handler: { (request, response, error) in
let approved = response["success"] as? Bool
if (approved.unsafelyUnwrapped) {
NSLog("Success")
}
})
}


```



#### Add Test Merchant


Expand Down
26 changes: 26 additions & 0 deletions blockchyp-ios-examples/AddGatewayMerchantExample.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#import <Foundation/Foundation.h>
#import <BlockChyp/BlockChyp.h>

int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

BlockChyp *client = [[BlockChyp alloc]
initWithApiKey:@"SPBXTSDAQVFFX5MGQMUMIRINVI"
bearerToken:@"7BXBTBUPSL3BP7I6Z2CFU6H3WQ"
signingKey:@"bcae3708938cb8004ab1278e6c0fcd68f9d815e1c3c86228d028242b147af58e"];

NSMutableDictionary *request = [[NSMutableDictionary alloc] init];
var profile: [String:Any] = [:]
profile["dbaName"] = "DBA Name"
profile["companyName"] = "Corporate Entity Name"
request["profile"] = profile
[client addGatewayMerchantWithRequest:request handler:^(NSDictionary *request, NSDictionary *response, NSError *error) {
NSNumber *success = [response objectForKey:@"success"];
if (success.boolValue) {
NSLog(@"Success");
}
}];
[pool drain];
return 0;
}
24 changes: 24 additions & 0 deletions blockchyp-ios-examples/AddGatewayMerchantExample.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import BlockChyp

class ExampleClass {

func example() {
let client = BlockChyp.init(
apiKey: "ZN5WQGX5PN6BE2MF75CEAWRETM",
bearerToken: "SVVHJCYVFWJR2QKYKFWMZQVZL4",
signingKey: "7c1b9e4d1308e7bbe76a1920ddd9449ce50af2629f6bb70ed3c110365935970b"
)

var request: [String:Any] = [:]
var profile: [String:Any] = [:]
profile["dbaName"] = "DBA Name"
profile["companyName"] = "Corporate Entity Name"
request["profile"] = profile
client.addGatewayMerchant(withRequest: request, handler: { (request, response, error) in
let approved = response["success"] as? Bool
if (approved.unsafelyUnwrapped) {
NSLog("Success")
}
})
}

1 change: 0 additions & 1 deletion blockchyp-ios-examples/UpdateMerchantPlatformsExample.m
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ int main (int argc, const char * argv[])
signingKey:@"bcae3708938cb8004ab1278e6c0fcd68f9d815e1c3c86228d028242b147af58e"];

NSMutableDictionary *request = [[NSMutableDictionary alloc] init];
request["merchantId"] = "XXXXXXXXXXXXX"
[client updateMerchantPlatformsWithRequest:request handler:^(NSDictionary *request, NSDictionary *response, NSError *error) {
NSNumber *success = [response objectForKey:@"success"];
if (success.boolValue) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ class ExampleClass {
)

var request: [String:Any] = [:]
request["merchantId"] = "XXXXXXXXXXXXX"
client.updateMerchantPlatforms(withRequest: request, handler: { (request, response, error) in
let approved = response["success"] as? Bool
if (approved.unsafelyUnwrapped) {
Expand Down
3 changes: 3 additions & 0 deletions blockchyp-ios/BlockChyp/BlockChyp.h
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,9 @@ NS_ASSUME_NONNULL_BEGIN
// Invites a user to join a merchant account.
-(void)inviteMerchantUserWithRequest:(NSDictionary *)request handler:(BlockChypCompletionHandler)handler;

// Adds a live gateway merchant account.
-(void)addGatewayMerchantWithRequest:(NSDictionary *)request handler:(BlockChypCompletionHandler)handler;

// Adds a test merchant account.
-(void)addTestMerchantWithRequest:(NSDictionary *)request handler:(BlockChypCompletionHandler)handler;

Expand Down
8 changes: 8 additions & 0 deletions blockchyp-ios/BlockChyp/BlockChyp.m
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,14 @@ -(void)inviteMerchantUserWithRequest:(NSDictionary *)request handler:(BlockChypC
}


// Adds a live gateway merchant account.
-(void)addGatewayMerchantWithRequest:(NSDictionary *)request handler:(BlockChypCompletionHandler)handler {

[self routeDashboardRequestWith:request path:@"/api/add-gateway-merchant" method:@"POST" handler:handler];

}


// Adds a test merchant account.
-(void)addTestMerchantWithRequest:(NSDictionary *)request handler:(BlockChypCompletionHandler)handler {

Expand Down
77 changes: 77 additions & 0 deletions blockchyp-ios/Tests/AddGatewayMerchantTest.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
// Copyright 2019-2022 BlockChyp, Inc. All rights reserved. Use of this code
// is governed by a license that can be found in the LICENSE file.
//
// This file was generated automatically by the BlockChyp SDK Generator.
// Changes to this file will be lost every time the code is regenerated.

#import "BlockChypTest.h"

@interface AddGatewayMerchantTest : BlockChypTest



@end

@implementation AddGatewayMerchantTest

- (void)setUp {

TestConfiguration *config = [self loadConfiguration];
BlockChyp *client = [[BlockChyp alloc] initWithApiKey:config.apiKey bearerToken:config.bearerToken signingKey:config.signingKey];
client.gatewayHost = config.gatewayHost;
client.testGatewayHost = config.testGatewayHost;
client.dashboardHost = config.dashboardHost;

NSDictionary *profile = [config.profiles objectForKey:@"partner"];
client.apiKey = (NSString*) [profile objectForKey:@"apiKey"];
client.bearerToken = (NSString*) [profile objectForKey:@"bearerToken"];
client.signingKey = (NSString*) [profile objectForKey:@"signingKey"];


}

- (void)tearDown {

}

- (void)testAddGatewayMerchant{

TestConfiguration *config = [self loadConfiguration];
BlockChyp *client = [[BlockChyp alloc] initWithApiKey:config.apiKey bearerToken:config.bearerToken signingKey:config.signingKey];
client.gatewayHost = config.gatewayHost;
client.testGatewayHost = config.testGatewayHost;
client.dashboardHost = config.dashboardHost;

NSDictionary *profile = [config.profiles objectForKey:@"partner"];
client.apiKey = (NSString*) [profile objectForKey:@"apiKey"];
client.bearerToken = (NSString*) [profile objectForKey:@"bearerToken"];
client.signingKey = (NSString*) [profile objectForKey:@"signingKey"];

XCTestExpectation *expectation = [self expectationWithDescription:@"AddGatewayMerchant Test"];

NSMutableDictionary *request = [[NSMutableDictionary alloc] init];
NSMutableDictionary *profile = [[NSMutableDictionary alloc] init];
profile[@"dbaName"] = @"DBA Name";
profile[@"companyName"] = @"Corporate Entity Name";
request[@"profile"] = profile;

[client addGatewayMerchantWithRequest:request handler:^(NSDictionary *request, NSDictionary *response, NSError *error) {

[self logJSON:response];
XCTAssertNotNil(response);
// response assertions
XCTAssertTrue([[response objectForKey:@"success"]boolValue]);

[expectation fulfill];
}];

@try {
[self waitForExpectationsWithTimeout:60 handler:nil];
}
@catch (NSException *exception) {
NSLog(@"Exception:%@",exception);
}

}

@end

0 comments on commit 86bb6de

Please sign in to comment.