《IOS 9 支付宝 and 微信 支付的集成》
来源:互联网 发布:linux如何卸载jdk 编辑:程序博客网 时间:2024/05/18 09:52
《IOS 9 支付宝 and 微信支付的集成》
支付做好了,只要7行代码,就可进行支付。不需要设置其他东西:举个例子:微信加什么.mm 和设置 other lInk 什么的。只要配置一个文件就可以。避免了,进行支付参数这个错,那个错的。造成支付调不起支付等原因。还有支付宝,打破它的限制,想把它移动到那个文件夹,九移动到哪(不会出现错误 ,不是什么绝对路径哦(嘿嘿,这是改里面的文件了))、。
第一步:我们来看效果。
第二部:我们配置文件。
1、导入必要的框架。
2、添加 URLtype (用于回调)。
3、添加,白名单。
4、进行网络的配置。(看图片上的说明)
第三步:进行关键包的导入。
绿色的是,重要的配置文件(一级保护动物)。
第四步:关键代码的缩影。
1、支付宝。
1》调用代码。
ZSJ_All_PaySDK * pa = [ZSJ_All_PaySDKZSJ_PaySdk];
if ([pa ZSJExamine]) {
pa.P_amount = @"0.01";
pa.P_productDescription =@"erdan ";
pa.P_productName = @"sd";
pa.P_tradeNO =@"KPD20160108104062";
[pa ZSJ_Pay:^(id resultObject) {
NSLog(@"%@",resultObject);
}];
}
2》隐式代码。
-(void)ZSJ_Pay:(result)resultObject{
Order *order = [[Orderalloc] init];
order.partner =Alipay_publickey;
order.seller = Alipay_seller;
order.tradeNO = self.P_tradeNO; //订单ID(由商家自行制定)
order.productName =self.P_productName;//商品标题
order.productDescription =self.P_productDescription;//商品描述
order.amount = self.P_amount; //商品价格
order.notifyURL = Alipay_notifyURL; //回调URL
order.service =@"mobile.securitypay.pay";
order.paymentType = @"1";
order.inputCharset = @"utf-8";
order.itBPay = @"30m";
order.showUrl =@"m.alipay.com";
//应用注册scheme,在AlixPayDemo-Info.plist定义URL types
NSString *appScheme = Alipay_scheme;
//将商品信息拼接成字符串
NSString *orderSpec = [order description];
NSLog(@"orderSpec = %@",orderSpec);
//获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode
id<DataSigner> signer =CreateRSADataSigner(Alipay_privatekey);
NSString *signedString = [signer signString:orderSpec];
//将签名成功字符串格式化为订单字符串,请严格按照该格式
NSString *orderString = nil;
if (signedString != nil) {
orderString = [NSStringstringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
orderSpec, signedString, @"RSA"];
[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
// 支付结果的回调
resultObject(resultDic);
}];
}
}
2、微信。
1》调用代码。
ZSJ_All_PaySDK * pa = [ZSJ_All_PaySDKZSJ_WXPaySdk];
if ([pa ZSJExamine_WeChat]) {
pa.WeChat_amount = @"1";
pa.WeChat_productDescription =@"你欠我钱";
pa.WeChat_productName = @"钱";
pa.WeChat_tradeNO =@"KPD20160108104025";
[pa WeChat_SendPay];
}
2》 隐式代码。
//提交预支付
-(NSString *)sendPrepay:(NSMutableDictionary *)prePayParams
{
NSString *prepayid = nil;
//获取提交支付
NSString *send = [selfgenPackage:prePayParams];
//输出Debug Info
[debugInfo appendFormat:@"发送的xml:%@\n", send];
//发送请求post xml数据
NSData *res = [WXEncrypthttpSend:@"https://api.mch.weixin.qq.com/pay/unifiedorder"method:@"POST"data:send];
//输出Debug Info
[debugInfoappendFormat:@"服务器返回:\n%@\n\n",[[NSStringalloc] initWithData:resencoding:NSUTF8StringEncoding]];
WApiXML *xml = [[WApiXMLalloc]init];
//开始解析
[xml StartAnalysisData:res];
// 获取数据
NSMutableDictionary *resParams = [xml GetAnalysisData];
NSLog(@"关键时刻:%@",resParams);
//判断返回
NSString *return_code = [resParams objectForKey:@"return_code"];
NSString *result_code = [resParams objectForKey:@"result_code"];
if ( [return_code isEqualToString:@"SUCCESS"] )
{
//生成返回数据的签名
NSString *sign = [selfcreateMd5Sign:resParams ];
NSString *send_sign =[resParams objectForKey:@"sign"] ;
//验证签名正确性
if( [sign isEqualToString:send_sign]){
if( [result_code isEqualToString:@"SUCCESS"]) {
//验证业务处理状态
prepayid = [resParams objectForKey:@"prepay_id"];
return_code = 0;
[debugInfo appendFormat:@"获取预支付交易标示成功!\n"];
}
}else{
last_errcode = 1;
[debugInfo appendFormat:@"gen_sign=%@\n _sign=%@\n",sign,send_sign];
[debugInfoappendFormat:@"服务器返回签名验证错误!!!\n"];
}
}else{
last_errcode = 2;
[debugInfoappendFormat:@"接口返回错误!!!\n"];
}
return prepayid;
}
- 《IOS 9 支付宝 and 微信 支付的集成》
- iOS-集成支付宝支付、微信支付简单总结
- 支付宝支付 微信支付 SDK的集成教程
- 支付宝支付与微信支付的集成
- iOS 集成微信支付
- iOS 集成微信支付
- iOS 集成微信支付
- iOS集成微信支付
- iOS集成微信支付
- iOS 集成微信支付
- iOS微信支付集成
- 【iOS】集成支付宝支付/银联支付/微信支付
- 微信支付,支付宝支付 iOS
- android集成支付,支付宝,微信
- 集成支付宝,微信支付
- 集成支付宝、微信支付
- 支付宝,微信支付方式集成
- 记录自己的支付集成(微信&支付宝)
- JSON和XML的比较
- 惜
- 图像算法---磨皮算法研究汇总
- OC中NSString/NSArray/#define宏定义的解析
- 关于Android Studio 编译classpath ‘gradle:2.0.0-alpha3’出错
- 《IOS 9 支付宝 and 微信 支付的集成》
- Android中常用控件(1)-TextView
- 途牛原创|途牛Android App的插件实现
- tomcat nginx默许的post大小限制
- shiro入门讲解
- 人工智能之卡尔曼滤波进阶
- 2016年如何用正确的姿势抢“头条”?
- Ubuntu14.04下搭建VPN服务
- redis主从同步期间发送的各种命令和各种超时