SDK 集成
本指南提供了将 Apple Pay 与 Yuno SDK 集成用于一次性和经常性支付的全面流程。SDK 通过处理支付token 管理和提供内置安全性,简化了 Apple Pay 集成。
所需设置在实施 Apple Pay 支付之前,请确保您已完成先决条件。
Apple Pay 概览
- 客户在 iOS 设备上启动付款
- 接收
payment_token通过 Apple SDK - 使用 Yuno 创建结账会话
- Yuno 使用您配置的提供商进行处理并返回响应
- 通过网络钩子监控响应状态
添加 Apple Pay 功能
在 iOS 应用程序中添加 Apple Pay 功能:
- 在 Xcode 中,在导航器中选择您的项目
- 选择应用目标
- 转到 "签名和能力"选项卡
- 点击+ 功能,搜索 "Apple Pay
- 添加Apple Pay功能
- 在 Apple Pay 部分配置商户 ID
确保您的 Apple Pay 商户 ID 与在 Yuno Dashboard 提供商连接中配置的相符。
使用 SDK 一次性付款
使用 Yuno SDK 进行一次性 Apple Pay 支付可为即时交易提供简化的集成体验。
创建结账会话
使用创建结账会话 endpoint 为一次性 Apple Pay 交易创建支付会话:
{
"country": "US",
"customer_id": "070a34cb-4649-4a4e-b231-065a53060379",
"merchant_order_id": "order-123",
"payment_description": "Apple Pay one-time payment",
"amount": {
"currency": "USD",
"value": 100
}
}处理付款
SDK 可自动处理 Apple Pay 流程。当客户完成 Apple Pay 授权后,付款将立即得到处理。
使用 SDK 循环支付
该 SDK 可管理客户发起的 (CIT) 和商家发起的 (MIT) 交易,同时安全地处理支付tokens,从而简化了经常性支付。
客户发起的交易 (CIT)
CIT 是客户授权定期付款的初始交易,例如当客户订购月度服务时。该交易需要与客户互动,并为未来的 MIT 交易生成一个token 。
申请 CIT 示例
{
"account_id": "62fa3145-1408-4044-a599-caa0c2159782",
"amount": {
"currency": "USD",
"value": 2000
},
"checkout": {
"session": "0793c7a5-79c6-40d6-aa5f-13e4e9bdf169"
},
"payment_method": {
"vault_on_success": true,
"detail": {
"wallet": {
"payment_token": "{\n \"paymentMethod\": {\n \"type\": \"credit\",\n \"displayName\": \"Visa 3748\",\n \"network\": \"Visa\"\n },\n \"paymentData\": {\n \"data\": \"B5NSQI0TdXuLwqadBCL0yOwtik/rJx7v41xxE8rNSlFBTHR2W88iRck7a6bH9Kx/bBFsk2ZyinIEl2aXusHp22a0pSmuCUoPgbkFc1/D3PRAoWITfZkalBeuzMhHJGhhCe2wqOgMmjS2w97nN9vifb1cMrS3kOqpPPMihHVvhLYbwtNhh8lfeTOyL+RBXbdFScVTFCB1eFQ4znUFV79SHVK/SRjLxLawO1HGIO0VIUTj8uVgG4MmBrfQhDBD/P9a4lWypiNoyURHm7ubgcOEelbVDGlKSNDmYFD10i554b+7z8GXBtWdQc1zhWKcGOn8RsOYtxxdqzHEtJzcFsf92/rEhfpEThXjsLLMTmovGyQS30qM/qO2YgqduEID7IS+xOH/FXpplT5Yqur7/+FgEwcv2lGsa0K6kNMEUn1xSWc=\",\n \"signature\": \"MIAGCSqGSIb3DQEHAqCAMIACAQExDTALBglghkgBZQMEAgEwgAYJKoZIhvcNAQcBAACggDCCA+MwggOIoAMCAQICCBZjTIsOMFcXMAoGCCqGSM49BAMCMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRlIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMjQwNDI5MTc0NzI3WhcNMjkwNDI4MTc0NzI2WjBfMSUwIwYDVQQDDBxlY2Mtc21wLWJyb2tlci1zaWduX1VDNC1QUk9EMRQwEgYDVQQLDAlpT1MgU3lzdGVtczETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATCFXft69bHsiGPaN1wkKEhjcewvW8sKD2EYJXZSvSlQRuDQg7YEfNAfoMzHxxUw/frMiDWutXU7/SSiYk+fA8To4ICE TCCA gwwggJ1oAMCAQICCEltL786mNqXMAoGCCqGSM49BAMCMGcxGzAZBgNVBAMMEkFwcGxlIFJvb3QgQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE0MDUwNjIzNDYzMFoXDTI5MDUwNjIzNDYzMFowejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8BcRhBnXZIXVGl4lgQd26ICi7957rk3gjfxLk+EzVtVmWzWuItCXdg0iTnu6CP12F86Iy3a7ZnC+yOgphP9URaOB9zCB9DBGBggrBgEFBQcBAQQ6MDgwNgYIKwYBBQUHMAGGKmh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwMDQtYXBwbGVyb290Y2FnMzAdBgNVHQ4EFgQUI/JJxE+T5O8n5sT2KGw/orv9LkswDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS7sN6hWDOImqSKmd6+veuv2sskqzA3BgNVHR8EMDAuMCygKqAohiZodHRwOi8vY3JsLmFwcGxlLmNvbS9hcHBsZXJvb3RjYWczLmNybDAOBgNVHQ8BAf8EBAMCAQYwEAYKKoZIhvdjZAYCDgQCBQAwCgYIKoZIzj0EAwIDZwAwZAIwOs9yg1EWmbGG+zXDVspiv/QX7dkPdU2ijr7xnIFeQreJ+Jj3m1mfmNVBDY+d6cL+AjAyLdVEIbCjBXdsXfM4O5Bn/Rd8LCFtlk/GcmmCEm9U+Hp9G5nLmwmJIWEGmQ8Jkh0AADGCAYgwggGEAgEBMIGGMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRlIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMw\",\n \"header\": {\n \"publicKeyHash\": \"YK8kdoBXLGqBQKBtCZOl0DQTUHOWidRCxgOgf/1gBMM=\",\n \"ephemeralPublicKey\": \"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEVv32VVJYlg+E0zMsthvBaldJcH45NUWhVckme/CQYFtHf60FEdFtzwabOEMY3u1De+6e+IuBv53OxmWx+1w2w==\",\n \"transactionId\": \"87a03c4cc1b242a25d74257d4bc990a6473b9866392850e584a9f680dcdf3d0f\"\n },\n \"version\": \"EC_v1\"\n }\n}",
"stored_credentials": {
"reason": "SUBSCRIPTION",
"usage": "FIRST"
}
}
},
"type": "APPLE_PAY"
},
"customer_payer": {
"id": "070a34cb-4649-4a4e-b231-065a53060379",
"nationality": "CO",
"browser_info": {
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15",
"accept_header": "application/json",
"accept_content": "*/*",
"accept_browser": "*/*",
"color_depth": "5",
"screen_height": "8",
"screen_width": "8",
"javascript_enabled": true,
"java_enabled": false,
"browser_time_difference": "300",
"language": "en",
"platform": "WEB"
}
},
"subscription": {
"id": "d67a4295-7bb3-4183-99ce-9f5d26d92709",
"billing_date": {
"type": "fixed_day",
"day": 18
}
},
"merchant_order_id": "merchant-order-123",
"country": "CO",
"description": "Apple Pay recurring setup",
"workflow": "SDK_CHECKOUT"
}企业所得税的主要参数
vault_on_success: true:该参数表示这是一个定期付款设置,并为未来的 MIT 交易生成tokenstored_credentials.usage: "FIRST":表示这是循环系列中的初始交易subscription:必填对象,包含 Apple Pay 循环使用的订阅详细信息
商家发起的交易 (MIT)
MIT 交易将使用 CIT 期间生成的token 在随后的账单周期自动处理。
麻省理工学院申请示例
{
"account_id": "account-id",
"amount": {
"currency": "USD",
"value": 100
},
"payment_method": {
"vaulted_token": "98c16e23-ebdd-4d0f-85bd-e0ba7d2fedf6",
"detail": {
"card": {
"stored_credentials": {
"reason": "SUBSCRIPTION",
"usage": "USED"
}
}
},
"type": "APPLE_PAY"
},
"customer_payer": {
"id": "customer-id"
},
"merchant_order_id": "recurring-order-456",
"country": "US",
"description": "Apple Pay recurring payment",
"workflow": "SDK_CHECKOUT"
}麻省理工学院的主要参数
token:在 CIT 期间生成的支付tokenstored_credentials.usage: "USED":表示这是循环系列中的后续交易- 没有
payment_token所需:使用存储的token
通过网络钩子监控付款状态,以处理边缘情况并提供客户通知。
订阅管理 URL
对于 SDK 循环支付,您必须提供一个订阅管理 URL,以便客户管理和取消订阅。请将其包含在客户通讯中。
相关文件
3 个月前已更新