我正在开发一款使用Apple Pay作为付款方式选择的应用。正常付款工作正常。我们有一个涉及订阅的产品,这也可以。我们获得苹果付款信息,然后使用商家提供商向服务器端每月收取费用。
我们遇到了第一个月免费订阅促销的问题。 Apple Pay似乎不支持0.00美元的购买,这将是第一个月的成本。通常情况下,我们会收到他们的信用卡详细信息,不会在第一个月收费,但会在此后自动收取费用。
具体来说,应用Pay的PaymentRequest的paymentSummaryItems不能接受成本为0.00美元的商品,总数必须加起来超过0.00美元。 Apple付费文档声明:
将总计金额设置为数组中所有其他项的总和。该金额必须大于零。
initWithPaymentRequest
调用否则返回nil,模态演示文稿会崩溃应用程序。错误处理可以避免,但它无法帮助获取所需的付款信息。
如果苹果支付不接受$ 0.00付款,获得免费试用月订阅的付款信息的最佳方式是什么?
PKPaymentRequest *paymentRequest = [Stripe paymentRequestWithMerchantIdentifier:APPLE_MERCHANT_ID];
paymentRequest.requiredShippingAddressFields = PKAddressFieldEmail | PKAddressFieldName;
NSDecimalNumber *amount = [Util decimalNumberFromCostStr:cartModel.totals.grandtotalFormattedString];
paymentRequest.paymentSummaryItems = @[
[PKPaymentSummaryItem summaryItemWithLabel:cartModel.totals.grandtotalFormattedString amount:amount],
[PKPaymentSummaryItem summaryItemWithLabel:@"Company Name" amount:amount]
];
if ([Stripe canSubmitPaymentRequest:paymentRequest]) {
PKPaymentAuthorizationViewController *paymentController;
paymentController = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:paymentRequest];
paymentController.delegate = self;
paymentController.modalPresentationStyle = UIModalPresentationFormSheet;
[[Util topMostController] presentViewController:paymentController animated:YES completion:nil];
} else {
[Util alertWithTitle:nil message:@"Cannot submit payment request" delegate:nil];
}