MoPay 0.0.6

MoPay 0.0.6

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release May 2015

Maintained by javen macbook air.



MoPay 0.0.6

  • By
  • Javen_liu

MoPay-iOS

说明

  • SDK支持iOS6.0以上。
  • SDK包含了微信SDK(libWeChatSDK.a)和支付宝SDK(AlipaySDK.framework),如果原来工程中已经包含了以上2个库,请先从项目移除。

集成SDK

使用pod集成

pod "MoPaySDK", "~> 1.0.0"

使用framework集成

如果使用XCode6以上的项目,可以把framework直接加入到Embedded Binaries。

集成以后工程能够顺利bulid成功,就说明已经集成成功了。

使用SDK

1.注册Schema和Host

在application:didFinishLaunchingWithOptions:launchOptions中或其他适当时机初始化SDK。

[MoPaySDK setupBaseURL:[NSURL URLWithString:@"http://mopayd.apps.toraysoft.com/"]];

[MoPaySDK registerInAppPurchase];

[MoPaySDK registerWeChatPayWithKey:@"wx3bb7d92700919217"];

[MoPaySDK registerAliPayWithUrlSchema:@"MoPayDemo"];

2.添加url回调处理

必须要使用url回调sdk,否则支付完成后不会收到回调。

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    [MoPaySDK handleOpenUrl:url];
    return YES;
}

3.配置schema

  • 配置微信schema Project->Target->Info->URL Types,加入schema 如果需要使用微信支付,加入微信schema,格式是wx+微信AppKey。

  • 配置支付宝schema Project->Target->Info->URL Types,加入schema 如果使用支付宝,加入支付宝schema,格式自定义,与registerAliPayWithUrlSchema传入的schema相同即可。

  • 如果使用IAP,需要加入StoreKit,并需要把demo的证书换成自己的证书,因为IAP的商品是跟证书相关的。 Project->Target->Bulid Phases->Link Binary With Libraries,加入StoreKit。 Project->Target->Bulid Setting->Provisoning Profile,选择正确的证书。

4.测试支付

创建一个商品

    MoProduct *product = [MoProduct new];
    product.id = 1;
    product.name = @"测试1";
    product.value = 1;
    product.code = @"plan1";

这里只是作为演示,实际商品信息应该从服务端获取。

调起支付

  • 指定调用某种支付。
[MoPaySDK payForProduct:product userId:1001 payType:MOPayTypeWeChat handler:^(MOPayType payType, MOPayState state, NSError *error) {

}];
  • 列出所有注册的支付类型,给使用者选择。
[MoPaySDK payForProduct:product userId:1001 handler:^(MOPayType payType, MOPayState state, NSError *error) {

}];
  • 如果需要传递额外参数到服务器,可以使用extraInfo参数。
[MoPaySDK payForProduct:product userId:1001 extraInfo:@{@"test":@"test"} payType:MOPayTypeWeChat|MOPayTypeAliPay|MOPayTypeIAP handler:^(MOPayType payType, MOPayState state, NSError *error) {

}];

常见错误

1.问:无法调起支付?

答:如果是微信支付,请保证自己的AppKey可用并填写正确。如果是支付宝支付,请保证服务器的ParterID和SellerID配置正确。如果是IAP,请确保项目使用Profile选择正确,并且该Profile已经配置了IAP的商品,确保服务端返回的Product code是正确IAP商品code。

2.调起了支付,但无法成功支付(微信、支付宝)?

答:请确保服务端的AppKey和AppSecret配置正确。

3.问:支付完成后没有返回到应用?

答:请确保注册SDK的schema与项目中配置的URL type是一致的。

4.问:支付完成,回到应用后没有收到回调?

答:如果是客户端没有收到回调,请确保在application:handleOpenURL:中回调了[MoPaySDK handleOpenUrl:url];如果是服务端没有收到回调,请确保服务端的Notify url配置正确。

错误码说明

MoPaySDK错误码

2001 网络请求失败 无法连接网络或网络中断
2002 获取支付签名过程失败 服务获取订单接口或生成签名接口错误
2003 应用内支付被禁用
2004 无法获取商品信息
2005 iap验证失败

微信支付错误码

-1 错误 可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
-2 用户取消 无需处理。发生场景:用户不支付了,点击取消,返回APP。

支付宝错误码

9000 订单支付成功
8000 正在处理中
4000 订单支付失败
6001 用户中途取消
6002 网络连接出错