ios支付闲鱼聊天频繁多久解除除

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)iOS---苹果支付串单完美解决方案
在做Apple pay的时候,遇到了串单的问题,究其原因就是无论支付成功还是失败,苹果都不会返回任何与订单相关的直接参数,我无法与我们服务器的订单号唯一对应,导致,处理订单的时候会乱,通过几天的摸索,找到了以下解决方法,我认为应该可以完美解决iOS7以及以上的串单问题,但是iOS7以下,我没有什么好的方法!
1. 当我们向苹果服务器发起支付请求后,苹果会回调如下方法:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
for (SKPaymentTransaction *transaction in transactions)
switch (transaction.transactionState)
case SKPaymentTransactionStatePurchased:
[self completeTransaction:transaction];
case SKPaymentTransactionStateFailed:
[self failedTransaction:transaction];
case SKPaymentTransactionStateRestored:
[self restoreTransaction:transaction];
case SKPaymentTransactionStatePurchasing:
LGLog(@Transaction is being added to the server queue.);
2. 当苹果回调后,我们需要在
- (void)completeTransaction:(SKPaymentTransaction *)transaction 或者
- (void)restoreTransaction:(SKPaymentTransaction *)transaction 或者
- (void)failedTransaction:(SKPaymentTransaction *)transaction 中调用
[[SKPaymentQueue defaultQueue] finishTransaction:transaction],告诉苹果我们已经接到通知,如果此方法通知苹果失败,那么苹果会一直调用 - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions,直到我们通知苹果成功,这样一来,就会出现串单问题。 因为苹果在 transaction 中没有返给我们任何跟订单相关的参数,我们无法跟我们服务器的订单唯一对应
3. 解决办法:
对于成功的回调,transaction中会包含一个交易号transaction.transactionIdentifier ,它是唯一的,我们可以将它保存到本地,用于区别不同的订单;
- (void)completeTransaction:(SKPaymentTransaction *)transaction {
[[SKPaymentQueue defaultQueue]finishTransaction:transaction];
// 如果苹果已经有过成功回调,则作废此次回调
if (![ZCTool saveTransactionIdentifier:transaction.transactionIdentifier]) {
对于失败的回调,iOS7以及以上(iOS7以下,我没有好方法),我们可以使用 transaction.payment.applicationUsername 保存订单号,具体做法如下
SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:product];
if (SYSTEM_VERSION &= 7.0) {
payment.applicationUsername = ourOrderId;
[[SKPaymentQueue defaultQueue] addPayment:payment];
这样,在失败回调方法中,我们可以如下处理,跟成功回调保存交易号的处理逻辑一致
- (void)failedTransaction:(SKPaymentTransaction *)transaction {
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
if (SYSTEM_VERSION &= 7.0) {
// 处理iOS7以及以上,如果苹果已经有过失败回调,则作废此次回调
if (![ZCTool saveAppleFailureOrderId:transaction.payment.applicationUsername]) {后使用我的收藏没有帐号?
关注:1379
所属分类: &
查看: 1600|回复: 1
ios王者荣耀买点券总是过很长时间以后显示支付失败是
ios王者荣耀买点券总是过很长时间以后显示支付失败是怎么回事?
也玩了一段王者荣耀,发现点券和钻石确实能买好多东西,英雄啊皮肤啊,可惜都不够用,平民玩家还是要合理利用啊,且用且珍惜,然后到处找,看看有没有福利领,发现18183确实有礼包福利,有好多钻石和点券,快去领http://ka.18183.com/list_game_2080.shtml
563577金币
TA的勋章:
也玩了一段王者荣耀,发现点券和钻石确实能买好多东西,英雄啊皮肤啊,可惜都不够用,平民玩家还是要合理利用啊,且用且珍惜,然后到处找,看看有没有福利领,发现18183确实有礼包福利,有好多钻石和点券,快去领
试玩游戏送现金红包
快来加入我们吧!()收起回复展开回复
完美世界倾力开发3D MMORPG手游!
重温当年热血与感动 预约赢取京东卡!
经常在论坛发帖,且发帖量较大(发帖量4000以上)

我要回帖

更多关于 微信登录频繁多久解除 的文章

 

随机推荐