6

私はインテント拡張機能を構築し、INSendMoneyIntent を処理しており、次のように言っています。

ジョン・スミスに 25 ユーロ送金

アプリ確認後のレスポンス

<Your_App> の支払いは 25.00 米ドルです。送信しますか?

インテントには適切な通貨 iso 3 コード - EUR が含まれているのに、なぜ siri は支払い確認で間違った通貨を表示するのですか?

意図を返す

INSendPaymentIntentResponse *reponse = [[INSendPaymentIntentResponse alloc] initWithCode:INSendPaymentIntentResponseCodeReady userActivity:userActivity];
completion(reponse);
4

2 に答える 2

1

Julius の回答に同意しますが、通貨を設定する場所が示されていません。メソッドを作成できます

- (INPaymentRecord *) getPaymentRecord:(INSendPaymentIntent *)intent
{
    INCurrencyAmount *currAmount = [[INCurrencyAmount alloc] initWithAmount: intent.currencyAmount currencyCode:@"ZAR"];
    INPaymentMethod *paymentMethod = [[INPaymentMethod alloc] initWithType:INPaymentMethodTypeCredit name:@"" identificationHint:@"" icon:nil];
    INPaymentRecord *paymentRecord = [[INPaymentRecord alloc] initWithPayee:nil payer:nil currencyAmount: intent.currencyAmount paymentMethod:paymentMethod note:nil status:INPaymentStatusCompleted ];
return paymentRecord;

}

そして、デリゲート メソッドから、上記の 2 つのステートメントの間に paymentrecord の割り当てを挿入するだけです。

    INSendPaymentIntentResponse *response = [[INSendPaymentIntentResponse alloc] initWithCode:INSendPaymentIntentResponseCodeSuccess userActivity:nil];

    **response.paymentRecord = [self getPaymentRecord:intent];**

    completion(response);
于 2016-10-19T09:25:01.703 に答える