【AppBuilder】支付宝移动支付
准备工作
注册成为支付宝商家
访问 https://b.alipay.com/,使用公司邮箱注册支付宝账号。
签约移动支付
在产品商店中找到“移动支付”,完成签约。
生成私钥和公钥
- 生成工具:使用支付宝提供的一键生成工具。
https://doc.open.alipay.com/doc2/detail?treeId=58&articleId=103242&docType=1 - 在工具中单击“重新生成”按钮,然后单击复制按钮,复制公钥。
- 把公钥复制到支付宝商家中心网页的“合作伙伴密钥管理 > RSA加密 > 查看密钥 > 修改”,然后单击“查看支付宝公钥”可以看到生成的支付宝公钥。
https://doc.open.alipay.com/doc2/detail?treeId=58&articleId=103543&docType=1 - 工具生成公钥时,同时生成了三个私钥文件。!注意!两个文件必须保存下来!
Android 使用文件“rsa_private_key_pkcs8.pem”中的私钥;
iOS 使用文件“rsa_private_key.pem”中的私钥;
rsa_public_key.pem 这个文件中的公钥仅用于上述步骤3,之后程序中不再使用该文件中的公钥,必须使用支付宝管理网页上单击“查看支付宝公钥”按钮后得到的公钥!! - 调用支付方法时的输入参数 seller 必须使用支付宝登录用户名。
- 对于 iOS,plugin.xml 中键 CFBundleURLSchemes 对应的值必须与调用支付宝 SDK 时传入的参数相同。
<platform name="ios"> <config-file target="*-Info.plist" parent="CFBundleURLTypes"> <array> <dict> ...... <key>CFBundleURLSchemes</key> <array> <string>partner123456</string> </array> </dict> </array> </config-file>
NSString *appScheme = [NSString stringWithFormat:@"%@%@", @"partner", self.partner];
!注意:不能以数字开头。
- 收到支付宝异步通知后,必须使用 utf-8 来验签,支付宝 .net SDK 中默认使用的是 GBK。验签时使用的公钥不能是rsa_public_key.pem 中的公钥,必须使用支付宝管理网页上单击“查看支付宝公钥”按钮后得到的公钥,公钥文件的格式必须包含头和尾!!
查看 PID 和密钥地址:https://b.alipay.com/order/pidAndKey.htm。
程序开发
下载第三方插件
参考:http://blog.csdn.net/shenshucong520/article/details/48782467
插件下载地址:https://github.com/glustful/cordova-alipay
导入插件
在 AppBuilder 中右击 Plugins 文件夹,导入第三方插件 zip 文件。
注意:plugin.xml 必须在插件文件夹的根目录下。
修改插件中的支付宝配置
打开 plugin.xml,修改 Android 配置项
<config-file target="res/xml/config.xml" parent="/*"> <preference name="partner" value="......" /> <preference name="rsa_private" value="......" /> <preference name="rsa_public" value="......" /> <feature name="Alipay"> <param name="android-package" value="com.yoopoon.cordova.plugin.alipay.Alipay" /> <param name="onload" value="true" /> </feature> </config-file>
替换上面的“......”,即 PID、RSA 私钥和合作伙伴里面的支付宝公钥。
使用最新的支付宝类库
下载:https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1
把 SDK 中最新的 jar 文件复制到 AppBuilder 中的“Plugins > com.yoopoon.cordova.plugin.alipay > src > android”目录下,
然后在 Plugin.xml 中修改配置
<!-- <source-file src="src/android/alipaysdk.jar" target-dir="libs" /> <source-file src="src/android/alipaysecsdk.jar" target-dir="libs" /> <source-file src="src/android/alipayutdid.jar" target-dir="libs" /> --> <source-file src="src/android/alipaySdk-20160516.jar" target-dir="libs" />
修改 Java 程序
- 使用最新的支付宝 SDK 更换现有 SDK 后,由于 SDK 中的方法签名等不同,可能会造成编译错误。根据编译错误的具体信息,参考支付宝 SDK 中的 demo 程序进行修改。
编译失败的日志文件在:C:\Users\[当前用户]\AppData\Local\Telerik\BlackDragon\Logs。 - 修改代码中的异常处理、错误处理等部分,确保错误信息能够输出到 cordova。
插件 Js 脚本
- 修改插件 www 目录下的 alipay.js 文件,使其能够被 cordova 访问。
- 把 alipay.js 复制到 AppBuilder 工程根目录,和 index.html 在同一层。
- 在 index.html 内添加对 alipay.js 的引用。
- 在功能页面中调用 alipay.js 中的函数。
部署和调试
- AppBuilder 的模拟器不支持插件,所以插件只能在手机上部署和调试。
- 修改插件代码后,必须在 AppBuilder 中 build,修改才能生效。
- 修改插件代码后,手机上首先必须卸载老 app,然后再下载和安装新 app。
- 插件代码的调试只能通过把字符串输出到网页,以及查看异常日志。
posted on 2016-06-02 23:24 CsharpStyle 阅读(370) 评论(0) 编辑 收藏 举报