iOS app集成支付宝支付流程及后台php订单签名处理
iOS app集成支付宝支付流程
1: 开通支付宝商户
由公司去支付宝 https://b.alipay.com/order/serviceIndex.htm 签约支付宝开通支付宝商家;
2:商户支付宝开通无线支付功能
开通商户支付宝之后,虽然可以获取到应用使用的 key和id,如果如果不开通无线支付功能的话,会在app集成的时间
提示商户未开通无线支付功能的错误;
开通商户支付宝-无线支付功能,请在商户支付宝后台,按要求提供审核材料开通;
3:在商户支付宝后台下载SDK
在商户支付宝后台,即可不同版本的SDK及文档,下载查阅使用;
4:在商户支付宝后台获取 PID,和 安全校验码 key
在商户后台,需要输入支付密码才可以看到;
5:如上图,填写自己后台生成的 公钥
按照支付宝文档后台生成支付使用的公钥,私钥
把公钥别忘记在这里上传;
注意:公钥,不能包含空格,换行,以及 生成之后开头的 ---public---这一行信息
把上面的去掉的之后:合适的公钥填在这里显示只有一行,即可;
6:查阅支付宝iOS app 集成的文档,demo
完成 iOS app的集成;
二:关于iOS 支付宝支付的订单处理
1:app自己签名订单信息
按demo要求,先配置支付宝的配置文件
填写pid,key,收款支付宝号(和上面开通支付商户的一致),公钥,私钥
注意:这里面的私钥:
这个私钥是后台在生成私钥之后,再一次的转换,生成的 PKCS8格式的私钥;
PKCS8私钥同样把 --priva---这一行删除,然后把所有空格,换行都去掉,然后复制-粘贴在这里;
然后,按照Demo上的订单生成及处理,签名就行了;
2: 关于 订单签名处理在后台服务器进行的操作
思路是:app发起支付请求---先请求服务器返回---返回支付宝调用所需要的完整签名订单----调用支付宝支付;
这种方式也是支付宝推荐的方式,所有签名加密处理都在后台服务器,前台app只负责拿这个订单和支付宝交互就行了;
NSString *orderString = [[dataDic objectForKey:@"ReturnData"] objectForKey:@"sign_str"]; NSString *appScheme = @"AliTEST_SC"; [AlixLibService payOrder:orderString AndScheme:appScheme seletor:@selector(paymentResult:) target:self];
关于 后台处理签名加密订单的 php 后台处理流程简介
/** 后台处理流程 //0. 参数,干净参数 $prestr = "order=123213&name=some"; //1, 加密 $sign = rsaSign($prestr,$alipay_config['private_key_path'] ); //2. 编码 加密字符串 $sign = urlencode($sign); //echo $sign; //3. 转义form元素 $prestr = addslashes($prestr); //4. 拼接 $return_str = $prestr.'&sign=\"'.$sign.'\"&sign_type=\"RSA\"'; //$return_str = addslashes($prestr); return $return_str; */