AuthorizeNetAccept 0.5.0

AuthorizeNetAccept 0.5.0

许可 NOASSERTION
发布最新发布2020年2月

Authorize.Net 开发者Pankaj TanejaRakeshVisa 维护。



  • 来自
  • Authorize.Net

Authorize.Net Accept Mobile SDK for iOS

此 SDK 允许移动开发者在 iOS 应用程序内提供信用卡支付功能,而不必将敏感卡数据回传到其应用程序的后端服务器。有关在移动应用程序中包含支付的信息,请参阅我们的InApp Payments Guide

SDK 安装

CocoaPods

    pod 'AuthorizeNetAccept'  

手动安装

AcceptSDK.framework 包括在应用程序中。在 Xcode 中,选择目标的主项目文件。在项目属性中的“常规”部分,滚动到“已嵌入的二进制文件”,按下加号(+),并选择框架。

一旦包含在内,请确保在“构建设置”标签中的“搜索路径”部分,这些框架的路径被正确添加。

SDK 使用

初始化 SDK 并将数据直接发送到 Authorize.Net

        
        let handler = AcceptSDKHandler(environment: AcceptSDKEnvironment.ENV_TEST)
        
        let request = AcceptSDKRequest()
        request.merchantAuthentication.name = kClientName
        request.merchantAuthentication.clientKey = kClientKey
        
        request.securePaymentContainerRequest.webCheckOutDataType.token.cardNumber = self.cardNumberBuffer
        request.securePaymentContainerRequest.webCheckOutDataType.token.expirationMonth = self.cardExpirationMonth
        request.securePaymentContainerRequest.webCheckOutDataType.token.expirationYear = self.cardExpirationYear
        request.securePaymentContainerRequest.webCheckOutDataType.token.cardCode = self.cardVerificationCode

注册回调并调用 getTokenWithRequest

        handler!.getTokenWithRequest(request, successHandler: { (inResponse:AcceptSDKTokenResponse) -> () in
            dispatch_async(dispatch_get_main_queue(),{
                self.updateTokenButton(true)

                self.activityIndicatorAcceptSDKDemo.stopAnimating()
                print("Token--->%@", inResponse.getOpaqueData().getDataValue())
                var output = String(format: "Response: %@\nData Value: %@ \nDescription: %@", inResponse.getMessages().getResultCode(), inResponse.getOpaqueData().getDataValue(), inResponse.getOpaqueData().getDataDescriptor())
                output = output + String(format: "\nMessage Code: %@\nMessage Text: %@", inResponse.getMessages().getMessages()[0].getCode(), inResponse.getMessages().getMessages()[0].getText())
                self.textViewShowResults.text = output
                self.textViewShowResults.textColor = UIColor.greenColor()
            })
        }) { (inError:AcceptSDKErrorResponse) -> () in
            self.activityIndicatorAcceptSDKDemo.stopAnimating()
            self.updateTokenButton(true)

            let output = String(format: "Response:  %@\nError code: %@\nError text:   %@", inError.getMessages().getResultCode(), inError.getMessages().getMessages()[0].getCode(), inError.getMessages().getMessages()[0].getText())
            self.textViewShowResults.text = output
            self.textViewShowResults.textColor = UIColor.redColor()
            print(output)
        }

使用 "接受支付令牌" 创建交易请求

您的服务器使用 Authorize.Net API 构造交易请求,将先前步骤中接收到的加密支付信息放在 opaqueData 元素中。

   {
    "createTransactionRequest": {
        "merchantAuthentication": {
            "name": "YOUR_API_LOGIN_ID",
            "transactionKey": "YOUR_TRANSACTION_KEY"
        },
        "refId": "123456",
        "transactionRequest": {
            "transactionType": "authCaptureTransaction",
            "amount": "5",
            "payment": {
                "opaqueData": {
                    "dataDescriptor": "COMMON.ACCEPT.INAPP.PAYMENT",
                    "dataValue": "PAYMENT_NONCE_GOES_HERE"
                }
            }
        }
    }
}

从 Objective-C 使用

从 Objective-C 调用 SDK 应该简单直观

    AcceptSDKHandler *handler = [[AcceptSDKHandler alloc] initWithEnvironment:AcceptSDKEnvironmentENV_TEST];
    AcceptSDKRequest *request = [[AcceptSDKRequest alloc] init];
    request.merchantAuthentication.name = @""; //name
    request.merchantAuthentication.clientKey = @""; //clientkey
   
    request.securePaymentContainerRequest.webCheckOutDataType.token.cardNumber = @""; //cardnumber
    request.securePaymentContainerRequest.webCheckOutDataType.token.expirationMonth = @"";
    request.securePaymentContainerRequest.webCheckOutDataType.token.expirationYear = @"";
    request.securePaymentContainerRequest.webCheckOutDataType.token.cardCode = @"";
   
    [handler getTokenWithRequest:request successHandler:^(AcceptSDKTokenResponse * _Nonnull token) {
        NSLog(@"success %@", token.getOpaqueData.getDataValue);
    } failureHandler:^(AcceptSDKErrorResponse * _Nonnull error) {
        NSLog(@"failed... );
    }];

示例应用程序

我们有一个示例应用程序,演示了 SDK 的使用
https://github.com/AuthorizeNet/accept-sample-ios

Apple In-App Purchase API

请记住,您必须使用 Apple 的 In-App Purchase API 来销售虚拟商品,例如应用的高级内容,以及数字内容的订阅。具体来说,Apple 的开发者条款要求使用 In-App Purchase API 用于数字“内容、功能或服务”,如高级功能或积分。有关更多详细信息,请参阅 https://developer.apple.com/app-store/review/guidelines/