一、Paytm移动支付
在此之前我接入过PayUmoney,感觉Paytm与PayUmoney还是差不多的。
Paytm的接入指引(iOS端)不得不得让我吐槽一下,就一个git的demo,别的什么都没。关键是这个demo还不能直接测试支付!!!
PayUmoney的接入指引(iOS端)还算可以,但是SDK里面的注释,少得可怜啊!!!
二、移动端(iOS端)接入Paytm
下载demo,将SDK拖入工程就可以了。
注意:拖入之后,后续可能会有link的一些报错,请自行百度。
三、代码实现
请先认真仔细阅读官方demo里面的代码。
请先认真仔细阅读官方demo里面的代码。
请先认真仔细阅读官方demo里面的代码。
PGMerchantConfiguration,设置商家信息
PGOrder,设置订单
PGTransactionViewController,拉起支付页面的VC
PGServerEnvironment,检查支付环境和状态
注意:
1、官方demo里面设置商家支付证书相关的可忽略。
我感觉这是Paytm自己在“假装自己很专业”,最初我也被这个坑到了。但是最后接好之后,发现并没有用到。
2、设置order的时候,WEBSITE 的值不要用demo里面的,用官方文档里面的值(APPSTAGING)
四、错误信息
1、delegate走error方法,输出error,错误信息:MissingKeys。
检查order的parmas,应该少了键值对,我接入的时候是少了CALLBACK_URL。
2、You are lost in space。
请跟后端一起查看,他生成 CHECKSUMHASH 时传的值是否跟你在设置order时传的值一样,dictionary里面的键值对不要多也不要少,保证一致。
3、支付完成,但是订单状态未改变。
在接入的时候,我们的service端并未接到Paytm的回调。再次查看文档之后,发现他们的接入流程是需要移动端(iOS端)告诉自己的service端。。。
我们可以用PGServerEnvironment里面的API + (void)statusForOrderID:(NSString*)orderID responseHandler:(void(^)(NSDictionary*response,NSError*error))handler;检查订单的支付状态,如果支付成功就告诉service端。