# launch

> Starts the payment process after an entry code is identified.

After the entry code is identified, the MPP app uses the **launch** API to start the payment process for the entry code.

## Method signature

```objectivec

NS_ASSUME_NONNULL_BEGIN
@interface MPPAlipayPlusClient (MPM)
- (void)launch:(MPPLaunchParams *)params
       completionHandler:(void(^)(MPPLaunchResult  * _Nullable result, NSError * _Nullable  error))completionHandler;
@end

NS_ASSUME_NONNULL_END
```

## Request parameters

| **Item** | **Type** | **Description** | **Required** |
| --- | --- | --- | --- |
| params | [MPPLaunchParams](ios_appendix#KsfnS) | The parameters required for the payment to be launched. | M |
| completionHandler | iOS Block | The callback to be invoked after the process to launch the decoding ends. See [completionHandler](#CrAVW) for details. | M |

#### completionHandler

| **Item** | **Type** | **Description** | **Required** |
| --- | --- | --- | --- |
| result | [MPPLaunchResult](ios_appendix#sxLMO) | The decoding result that is required if the request succeeds. | O |
| error | NSError | The error code that is required if the request fails. | O |

## Response parameters

N/A

## Sample

```objectivec
#import <MPPAlipayPlusClientMPM/MPPAlipayPlusClientMPM.h>

MPPLaunchParams *params = MPPLaunchParams.new;
params.url = @"xxxx";
params.userAgent = @"yyyy";
params.acDecodeConfig = @"zzzz";
params.title = @"wwww";
[[MPPAlipayPlusClient shared] launch:params
                                         completionHandler:^(MPPLaunchResult  * _Nullable result, NSError *error) {
                                         if (error) {
                                         // Your Logic
                                         }
 }];
```