【AppBuilder】支付宝移动支付

准备工作

注册成为支付宝商家

访问 https://b.alipay.com/,使用公司邮箱注册支付宝账号。

 

签约移动支付

在产品商店中找到“移动支付”,完成签约。

 

生成私钥和公钥

  1. 生成工具:使用支付宝提供的一键生成工具。
    https://doc.open.alipay.com/doc2/detail?treeId=58&articleId=103242&docType=1
  2. 在工具中单击“重新生成”按钮,然后单击复制按钮,复制公钥。
  3. 把公钥复制到支付宝商家中心网页的“合作伙伴密钥管理 > RSA加密 > 查看密钥 > 修改”,然后单击“查看支付宝公钥”可以看到生成的支付宝公钥。
    https://doc.open.alipay.com/doc2/detail?treeId=58&articleId=103543&docType=1
  4. 工具生成公钥时,同时生成了三个私钥文件。!注意!两个文件必须保存下来!
    Android 使用文件“rsa_private_key_pkcs8.pem”中的私钥;
    iOS 使用文件“rsa_private_key.pem”中的私钥;
    rsa_public_key.pem 这个文件中的公钥仅用于上述步骤3,之后程序中不再使用该文件中的公钥,必须使用支付宝管理网页上单击“查看支付宝公钥”按钮后得到的公钥!!
  5. 调用支付方法时的输入参数 seller 必须使用支付宝登录用户名。
  6. 对于 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];

    !注意:不能以数字开头。

  7. 收到支付宝异步通知后,必须使用 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  阅读(358)  评论(0编辑  收藏  举报