付款意图 Sirikit 仍然无法正常工作
Posted
技术标签:
【中文标题】付款意图 Sirikit 仍然无法正常工作【英文标题】:Payment intent Sirikit still not working 【发布时间】:2016-08-15 14:17:28 【问题描述】:如果我尝试实现 requestPaymentIntent,我一直在开发一个应用程序。它首先工作,但在某个时候它开始进行 Bing 搜索,并在某个时候只是说它发现了一个错误,然后什么也没做。主题中也指出了这一点:支付域意图正在显示互联网结果,而不是使用 Sirikit 的意图 UI 或意图确认。
William Hindenburg 提供了一个标记为好的解决方案:“我们发现您需要在 INSendPaymentIntentResponse 中添加一个 paymentRecord,然后再从 Payment Intent 处理程序中的确认和处理方法返回它。试一试,然后看看能不能解决你的问题。”
我尝试过这样做,但我无法弄清楚。我主要在定义状态方面遇到问题。
所以在我的handle 方法中我首先定义了userActivity。然后我初始化响应对象。
let response = INRequestPaymentIntentResponse (code: .success, userActivity: userActivity)
然后我想在响应对象中添加一个paymentRecord:
response.paymentRecord = INPaymentRecord(payee: nil, payer: nil, currencyAmount: intent.currencyAmount, paymentMethod: nil, note: intent.note, status: ???)
一些我不需要/使用的参数,所以我填写了nil。我想在我的应用程序中拥有两件事,需要支付的金额,以及需要支付的金额(注释)。在 ???我必须填写一个状态,我尝试了几件事,但我无法弄清楚。由于很多人已经完成了这项工作,您能帮我解释一下这是如何工作的吗?非常感谢!
【问题讨论】:
【参考方案1】:Apple 确实没有指定用于确认的状态,但目前这对我有用。
确认通话:
response.paymentRecord = [self makePaymentRecordForIntent:intent withStatus:INPaymentStatusPending];
拨打电话:
intentResponse.paymentRecord = [self makePaymentRecordForIntent:intent withStatus:INPaymentStatusCompleted];
泛化代码:
-(INPaymentRecord *)makePaymentRecordForIntent:(INSendPaymentIntent *)intent withStatus:(INPaymentStatus)status
INPaymentMethod *payMethod = [[INPaymentMethod alloc] initWithType:INPaymentMethodTypeChecking
name:@"Gold Star Checking"
identificationHint:@"1234"
icon:nil];
INPersonHandle *senderHandle = [[INPersonHandle alloc] initWithValue:@"first.last@example.com" type:INPersonHandleTypeEmailAddress];
NSPersonNameComponents *senderNameComp = [[NSPersonNameComponents alloc] init];
senderNameComp.givenName = @"First";
senderNameComp.familyName = @"Last";
INPerson *senderPerson = [[INPerson alloc] initWithPersonHandle:senderHandle
nameComponents:senderNameComp
displayName:@"First Last"
image:nil
contactIdentifier:nil
customIdentifier:nil];
INPaymentRecord *paymentRecord = [[INPaymentRecord alloc] initWithPayee:intent.payee
payer:senderPerson
currencyAmount:intent.currencyAmount
paymentMethod:payMethod
note:intent.note
status:status];
return paymentRecord;
【讨论】:
仍然对我不起作用。 Siri 只是发出“呃-哦”的声音以上是关于付款意图 Sirikit 仍然无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
如何为快捷方式应用自定义 SiriKit 意图扩展以请求允许访问?
Siri - Lang Swift 3,INPayBillIntent 不工作,Siri 说“你必须在 DemoApp 中继续,你想打开它吗?”