1. 申请签约 商家服务
2. 生成公钥与私钥 参考博客 支付宝集成获取私钥与公钥
3. 支付宝的支付流程
1. 商户APP客户端根据demo创建Order 对象, 设置相关属性并用私钥签名加密(RSA算法,RSA算法原理,支付宝都给写好了,调用一下)
2. 调用一下发送一下行了,详见demo(放一个github网站)
// 需要主要的点 :1. 为了避免商户也使用SBJSON造成的重定义错误,SDK将SBJSON的实现挪移
到了商户程序客户端,因此如果提示未定义请自助添加DEMO中\AlipaySdkDemo\alipay\json目录下SBJSON的实现。
2. 添加白名单 http://www.mamicode.com/info-detail-1049462.html
集成
集成 demo中把 AlipaySDK.bundle , AlipaySDK.framework 拉进去导入的库 CoreMotion.framework CFNetwork.framework Foundation.frameworkUIKit.framework CoreGraphics.framework CoreText.framework QuartzCore.framework CoreTelephony.framework SystemConfiguration.framework
xcode7之后添加这两个 libz.tbd libc++.tbd
xcode7之前添加这两个 libc++.dylib libz.dylib
添加白名单
LSApplicationQueriesSchemes Array
item0 String alipay
item1 String alipayshare
https
App Transport Security Settings Dictionary Allow Arbitrary LoadsBoolean YES常见错误找不到
解决方法如下:
在你的Xcode里的header search paths 里添加支付宝SDK(openssl的路径);格式如下 $(PROJECT_DIR)/文件夹名 (这里说一下,直接点击openssl,然后showinfinder,然后command + i 查看路径,把得到路径的工程名字以后的部分加在文件夹名这OK了)
#warning 结果
/*
在支付过程结束后,会通过callbackBlock同步返回支付结果。
返回结果需要通过resultStatus以及result字段的值来综合判断并确定支付结果。在resultStatus=9000,并且success=“true”以及sign=“xxx”校验通过的情况下,证明支付成功。其它情况归为失败。较低安全级别的场合,也可以只通过检查resultStatus以及success=“true”来判定支付结果。以下为订单支付成功的完成信息示例:
ResultStatus={9000};memo={};result={partner="2088101568358171"&seller_id="xxx@alipay.com"&out_trade_no="0819145412-6177"&subject="测试"&body="测试测试"&total_fee="0.01"¬ify_url="http://notify.msp.hk/notify.htm"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&success="true"&sign_type="RSA"&sign="hkFZr+zE9499nuqDNLZEF7W75RFFPsly876QuRSeN8WMaUgcdR00IKy5ZyBJ4eldhoJ/2zghqrD4E2G2mNjs3aE+HCLiBXrPDNdLKCZgSOIqmv46TfPTEqopYfhs+o5fZzXxt34fwdrzN4mX6S13cr3UwmEV4L3Ffir/02RBVtU="}
注意:
支付结果的提取,必须通过CompletionBlock获取,禁止开发者私自解析支付结果返回的URL。获取值的Key对应resultStatus、memo与result(result中的值,开发者可以自行解析);
为了保障已有商户的正常使用,返回参数ResultStatus首字母为大写。在新的SDK中已经用统一的工具类实现了ResultStatus到resultStatus的转换,商户从CompletionBlock中获取resultStatus即可
*/