{"id":28409246,"url":"https://github.com/paymentwall/paymentwall-pwlocal-ios","last_synced_at":"2025-06-25T00:31:40.508Z","repository":{"id":62450337,"uuid":"88821335","full_name":"paymentwall/paymentwall-pwlocal-ios","owner":"paymentwall","description":"PWLocal widget for iOS","archived":false,"fork":false,"pushed_at":"2018-01-03T08:05:08.000Z","size":1991,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-08T12:41:29.746Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paymentwall.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-20T04:39:13.000Z","updated_at":"2020-12-10T23:45:01.000Z","dependencies_parsed_at":"2022-11-01T23:33:02.471Z","dependency_job_id":null,"html_url":"https://github.com/paymentwall/paymentwall-pwlocal-ios","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paymentwall%2Fpaymentwall-pwlocal-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paymentwall%2Fpaymentwall-pwlocal-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paymentwall%2Fpaymentwall-pwlocal-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paymentwall%2Fpaymentwall-pwlocal-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paymentwall","download_url":"https://codeload.github.com/paymentwall/paymentwall-pwlocal-ios/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paymentwall%2Fpaymentwall-pwlocal-ios/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258816360,"owners_count":22762351,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-02T06:17:54.279Z","updated_at":"2025-06-25T00:31:40.500Z","avatar_url":"https://github.com/paymentwall.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PWLocal iOS SDK\n## Introduction\nDo you need to have an ability to accept payments from mobile users in different countries, considering which payment methods  fit best? PWLocal is a global payment gateway that makes it easy to accept payments from customers in more than 200 countries with 100+ alternative payment options. \nPWLocal iOS SDK will become a native part of your application, it eliminates the necessity to open a web browser for payments, as a result you will receive a higher conversions rate.\nAll you have to do is import the library into your iOS project and start using our SDK to accept in-app payments. It is quick and easy! We'll guide you through the process here.\n\n## How does it work ?\t\n1. The customer clicks on the **Buy** button inside your application.\n2. The PWLocal SDK is called at this moment and opens application dialog with the list of payment systems.\n3. User chooses a payment system and clicks on **Buy**. After it, a new application dialog opens. It would be a \"thank you\" screen or a dialog for providing payment details, such as credit card number, if needed.\n4. The payment is completed and your callback function is triggered to handle its result. Your backend will be also notified about it.\n\n## Credentials\nYour mobile integration requires a Project key.  \nYou can obtain these Paymentwall API credentials in the application settings of your Merchant Account at [Paymentwall](https://www.paymentwall.com/)\n\n## Add SDK to your project\n### Manually:\n1. In the menubar click \"File\" then \"Add file to YOUR_PROJECT\".\n2. Select the \"PWLocalSDK\" directory in the downloaded repository.\n3. Make sure 'Copy items into destination group's folder (if needed)' is checked.\n4. Click \"Add\"\n5. Click on your project, in Targets tab click in \"Build Settings\"\n6. In the \"Header Search Paths\" add link to include file of SDK such as \"$SOURCE_ROOT/PWLocalSDK/include\"\n7. In the \"Library Search Paths\" add link to file \"libPWLocalSDK.a\"\n\n### With Cocoapods:\n1. Add `pod 'PWLocalSDK'` into your podfile\n2. Run `pod install` in your terminal\n3. If you are using Swift : Create a `Project-Bridging-Header.h` and add it in your Build settings's `Objective-C Bridging Header`\n\n## Accepting your first payment\n### Import\n###### Objective-C\n```objective-c\n#import \"PWLocalSDK.h\"\n```\n###### Swift\nAdd this command to your `Bridging-Header.h` file\n\n```objective-c\n#import \"PWLocalSDK.h\"\n```\n\n### Create PWLocal request\nWe have 4 types of PWLocal payment request: `VirtualCurrency`, `DigitalGoodsDefautWidget`, `DigitalGoodsFlexibleWidget` and `CartDefaultWidget`\nWe support 3 API type: `VIRTUAL_CURRENCY`, `DIGITAL_GOODS_FLEXIBLE`, `DIGITAL_GOODS_DEFAULT`, `CART`\nFor more information, please refer to:\nhttps://www.paymentwall.com/en/documentation/Digital-Goods-API/710\n#### Defined request\nWe defined 4 types request: `VirtualCurrency`, `DigitalGoodsDefautWidget`, `DigitalGoodsFlexibleWidget` and `CartDefaultWidget`. You can simply use setters to set required parameters. Please note that all the parameters are changed from under_score to camelCase format.\n##### Example\n###### Objective-C\n```objective-c\nDigitalGoodsDefautWidget *digitalGoodsdefaultWidget = [DigitalGoodsDefautWidget new];\ndigitalGoodsdefaultWidget.key = PROJECT_KEY;\ndigitalGoodsdefaultWidget.uid = USER_ID;\ndigitalGoodsdefaultWidget.widget = WIDGET_TYPE;\n```\n###### Swift\n```swift\nlet digitalGoodsdefaultWidget = DigitalGoodsDefautWidget()\ndigitalGoodsdefaultWidget.key = PROJECT_KEY\ndigitalGoodsdefaultWidget.uid = USER_ID\ndigitalGoodsdefaultWidget.widget = WIDGET_TYPE\n```\n#### Custom request\nIf our defined request does not match your need. We also supported NSDictionary with key and value you can handler it by yourself. It follows the parameters in https://www.paymentwall.com/en/documentation/Digital-Goods-API/710\n##### Example\n###### Objective-C\n```objective-c\nNSMutableDictionary *customSetting = [NSMutableDictionary new];\n[customSetting setObject: PROJECT_KEY forKey:@\"key\"];\n[customSetting setObject: USER_ID forKey:@\"uid\"];\n[customSetting setObject: WIDGET_TYPE forKey:@\"widget\"];\n```\n###### Swift\n```swift\nvar customSetting = [String: String]()\ncustomSetting[\"key\"] = PROJECT_KEY\ncustomSetting[\"uid\"] = USER_ID\ncustomSetting[\"widget\"] = WIDGET_TYPE\n```\n### Start PWLocal dialog\n#### Defined request\n###### Objective-C\n```objective-c\n[PWLocalSDK showPWLocalViewControllerWithViewController:self\n                                               delegate:self\n                                                   type:DIGITAL_GOODS_FLEXIBLE\n                                                 params:digitalGoodsdefaultWidget\n                                              secretKey:SECRET_KEY];\n```\n###### Swift\n```swift\nPWLocalSDK.showPWLocalViewController(with: self,\n                                     delegate: self,\n                                     type: .DIGITAL_GOODS_FLEXIBLE,\n                                     params: digitalGoodsdefaultWidget,\n                                     secretKey: SECRET_KEY)\n```\n\n#### Custom request\n###### Objective-C\n```objective-c\n[PWLocalSDK showPWLocalViewControllerWithViewController:self\n                                               delegate:self\n                                                   type:DIGITAL_GOODS_FLEXIBLE\n                                                 params:customSetting\n                                              secretKey:SECRET_KEY];\n```\n###### Swfit\n```swift\nPWLocalSDK.showPWLocalViewController(with: self,\n                                     delegate: self,\n                                     type: .DIGITAL_GOODS_FLEXIBLE,\n                                     params: customSetting,\n                                     secretKey: SECRET_KEY)\n```\n\n#### Custom signing\nStoring `secretKey` on your own backend lower your risk of exposing it. Signing your request remotely is recommended to secure your project. You can use this method to get the complete sorted string, you will only need to add secret key at the end to calculate the signature, `params` can be Dictionary or any of the pre-made class:\n\n###### Objective-C\n```objective-c\nNSString *stringToSign = [PWLocalSDK getStringToSign:params];\n```\n\n###### Swift\n```swift\nlet stringToSign = PWLocalSDK.getStringToSign(params)\n```\n\u003eNote:  Param `\"success_url\"=\"pwlocal://paymentsuccessful\"` is added by default by this function if your `params` doesn't have it included, if you use your own webView, track this value to close your webView\n\n#### Extra headers\nPlease note that if you want to use your own webview to show the widget, there are few extra headers you have to add to your request, use this method to get them and add to your mutable request with `[request setValue:value forHTTPHeaderField:key]`:\n\n###### Objective-C\n```objective-c\nNSDictionary *extra = [PWLocalSDK getExtraHeaders];\n```\n\n###### Swift\n```swift\nlet extra = PWLocalSDK.getExtraHeaders()\n```\n\n### Handle result\nYou have to add PWLocalSDKDelegate to your ViewController\n###### Objective-C\n```objective-c\n@interface YourViewController : UIViewController \u003cPWLocalSDKDelegate\u003e\n```\n###### Swift\n```swift\nclass YourViewController: UIViewController, PWLocalSDKDelegate\n```\nYou can handle payment results by defining your callback function. We recommend syncing up with your server  at this point to sync up user's balance, confirm purchased item etc. See the example:\n\n###### Objective-C\n```objective-c\n#pragma mark - PWLocal Response\n-(void)pwLocalResponse:(PWLocalResponse *)response {\n    switch (response.code) {\n        case PWLOCAL_SUCCESSFUL:\n            break;\n        case PWLOCAL_FAILED:\n            break;\n        case PWLOCAL_CANCELED:\n            break;\n        default:\n            break;\n    }\n}\n```\n###### Swift\n```swift\n// MARK: - PWLocal Response\nfunc pwLocalResponse(response: PWLocalResponse!) {\n        switch response.code {\n        case .PWLOCAL_SUCCESSFUL:\n            break\n        case .PWLOCAL_CANCELED:\n            break\n        case .PWLOCAL_FAILED:\n            break\n        }\n}\n```\n\n`response.code` code can have one of the following values:\n\n`PWLOCAL_SUCCESSFUL `: the user has completed the payment\n\n`PWLOCAL_CANCELED `: the user has aborted the payment\n\n`PWLOCAL_FAILED `: the payment cannot be done due to some error:\n- Network error\n- Invalid supplying request\n\n## Payment Status API utils\nOur SDK also support [Payment Status API.](https://www.paymentwall.com/en/documentation/Payment-Status-API/3019)\n### Get payment status\n#### Unsigned call\n###### Objective-C\n```objective-c\n#pragma mark - PWLocal Get Payment Status\n[PWLocalSDK checkPaymentStatusWithKey:PROJECT_KEY\n                         agExternalId:A_EXTERNAL_ID\n                                  uid:UID\n                          signVersion:0\n                         andSecretKey:@\"\"\n                           completion:^(PWLocalStatusResponse *response) {\n                               if(response.code == PWLOCAL_STAUTS_SUCCESSFUL) {\n                                   if(response.dataResponse.count \u003e 0)\n                                        PaymentStatus *paymentStatus = response.dataResponse.firstObject;\n                                   }\n                               }\n                               else\n                                   NSLog(@\"%@\", response.message);\n                           }];\n```\n###### Swift\n```swift\n// MARK: - PWLocal Get Payment Status\nPWLocalSDK.checkPaymentStatusWithKey(PROJECT_KEY, agExternalId: A_EXTERNAL_ID, uid: UID, signVersion: 0, andSecretKey: \"\", completion: {\n            (response) -\u003e Void in\n            \n        })\n```\n#### Signed call\n###### Objective-C\n```objective-c\n#pragma mark - PWLocal Get Payment Status\n[PWLocalSDK checkPaymentStatusWithKey:PROJECT_KEY\n                         agExternalId:A_EXTERNAL_ID\n                                  uid:UID\n                          signVersion:SIGN_VERSION\n                         andSecretKey:SECRET_KEY\n                           completion:^(PWLocalStatusResponse *response) {\n                               if(response.code == PWLOCAL_STAUTS_SUCCESSFUL) {\n                                   if(response.dataResponse.count \u003e 0)\n                                        PaymentStatus *paymentStatus = response.dataResponse.firstObject;\n                                   }\n                               }\n                               else\n                                   NSLog(@\"%@\", response.message);\n                           }];\n```\n###### Swift\n```swift\n// MARK: - PWLocal Get Payment Status\nPWLocalSDK.checkPaymentStatusWithKey(PROJECT_KEY, agExternalId: A_EXTERNAL_ID, uid: UID, signVersion: SIGN_VERSION, andSecretKey: SECRET_KEY, completion: {\n            (response) -\u003e Void in\n            \n        })\n```\n\n## Server notification handling\nAfter each successful payment we will notify your server about it. We recommend to use this feature as it is the most reliable way to know when the payment went through. Even if your application crashes for some reason, your server will still be notified, so you can sync up later.\nPlease use [pingback processing documentation](https://www.paymentwall.com/en/documentation/Digital-Goods-API/710#pingback_processing) for more information. \n## Appendix\n### Supported parameters\nHere's the list of supported parameters in defined requests\n#### Parameters of VirtualCurrency\n\u003ctable\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eData type\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003e\u003cstrong\u003eParameter\u003c/strong\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ekey\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003euid\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ewidget\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eps\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003esign_version\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ebirthday\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eemail\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003esex\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eevaluation\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_city\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_state\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_address\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_country\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_zip\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ecountry_code\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003erv\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eth\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003etm\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003epingback_url\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003esuccess_url\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\n\n#### Parameters of DigitalGoodsDefautWidget\n\u003ctable\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eData type\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003e\u003cstrong\u003eParameter\u003c/strong\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ekey\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003euid\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ewidget\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eps\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003ets\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003esign_version\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ebirthday\u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ecountry_code\u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eemail\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003esex\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eevaluation\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003efirstname\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elang\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elastname\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_city\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_state\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_address\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_country\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_zip\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003edefault_goodsid\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003edisplay_goodsid\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSArray\u003c/td\u003e\u003ctd\u003ehide_goodsid\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003epingback_url\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003esuccess_url\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\n\n#### Parameters of DigitalGoodsFlexibleWidget\n\u003ctable\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eData type\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003e\u003cstrong\u003eParameter\u003c/strong\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ekey\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003euid\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ewidget\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eamount\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ecurrencyCode\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eps\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003ets\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_name\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_external_id\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_type\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_period_length\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_period_type\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_recurring\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_promo\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_trial\u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_post_trial_period_length\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_post_trial_period_type\u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_post_trial_external_id\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003epost_trial_amount\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003epost_trial_currencyCode\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003eag_post_trial_name\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003ehide_post_trial_good\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003esign_version\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ebirthday\u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ecountry_code\u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eemail\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003esex\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eevaluation\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003efirstname\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elang\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elastname\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_city\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_state\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_address\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_country\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_zip\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eshow_trial_non_recurring\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eshow_trial_recurring\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eshow_post_trial_non_recurring\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eshow_post_trial_recurring\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003epingback_url\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003esuccess_url\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\n\n#### Parameters of CartDefaultWidget\n\u003ctable\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003cstrong\u003eData type\u003c/strong\u003e\u003c/td\u003e\u003ctd\u003e\u003cstrong\u003eParameter\u003c/strong\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ekey\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003euid\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ewidget\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eexternal_ids\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eprices\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ecurrencies\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003efirstname\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elastname\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e NSString \u003c/td\u003e\u003ctd\u003esign_version\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003ebirthday\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eemail\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003esex\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003eevaluation\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_city\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_state\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_address\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_country\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003elocation_zip\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eNSString\u003c/td\u003e\u003ctd\u003epingback_url\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaymentwall%2Fpaymentwall-pwlocal-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaymentwall%2Fpaymentwall-pwlocal-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaymentwall%2Fpaymentwall-pwlocal-ios/lists"}