您的位置:首页 > 移动开发 > 微信开发

支付宝支付和微信支付接入前要看的一些事

2017-11-17 00:29 316 查看
首先,要说的第一点是。

一定要和服务器端一起做,

一定要和服务器端一起做,

一定要和服务器端一起做,

重要的事情说三遍。

首先别想太难,其实非常简单,看他们文档写了一大堆,什么加密,公,秘钥之类的,和我们没啥关系。

所以说,我们要做的就是,只要调一个接口就行。

微信

微信的文档写的非常的好:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_1

核心的方法:

PayReq *request = [[[PayReq alloc] init] autorelease];

request.partnerId = @"10000100";

request.prepayId= @"1101000000140415649af9fc314aa427";

request.package = @"Sign=WXPay";

request.nonceStr= @"a462b76e7436e98e0ed6e13c64b4fd1c";

request.timeStamp= @"1397527777";

request.sign= @"582282D72DD2B03AD892830965F428CB16E7A256";

[WXApi sendReq:request];

里面的参数都是后台传过来的。

支付宝

支付宝文档https://docs.open.alipay.com/204/105295/

关于支付宝,先导入SDK包,

AlipaySDK.bundle

AlipaySDK.framework

在Build Phases选项卡的Link Binary With Libraries中,增加以下依赖:



其中,需要注意的是:
如果是Xcode 7.0之后的版本,需要添加libc++.tbd、libz.tbd;
如果是Xcode 7.0之前的版本,需要添加libc++.dylib、libz.dylib(如下图)。



步骤2:在需要调用AlipaySDK的文件中,增加头文件引用。


import <AlipaySDK/AlipaySDK.h>

文档看到这里等,后面组装请求消息是后端的活。等他们将组装好的消息发我们
调用这个方法

        AlipaySDK.defaultService().payOrder(sign, fromScheme: "ZhiFuBao") { (result) in
            print("支付宝支付结果\(String(describing: result))")
       }

当然后面的支付成功后的回调方法还是要看的

步骤4:配置支付宝客户端返回url处理方法。

(外部存在支付包钱包,支付宝钱包将处理结果通过url返回。)

如示例AliSDKDemo\APAppDelegate.m文件中,增加引用代码:


import <AlipaySDK/AlipaySDK.h>

@implementation AppDelegate中以下代码中的NSLog改为实际业务处理代码:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)
4000
url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {

if ([url.host isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
return YES;
}

// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if ([url.host isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
return YES;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: