aliPay


阿里移动支付和支付宝好友分享。移动支付是一种程序式的支付方式,在手机、掌上电脑等无线设备的应用程序内,买家可通过支付宝进行付款购买特定服务或商品,资金即时到账。支付宝好友分享是用户使用开发者制作的移动应用时,可以将自己喜欢的内容,通过该功能快速地转发给自己在支付宝钱包内的好友。好友点击打开内容链接,将通过支付宝钱包内置浏览器打开网页的形式进行呈现。通过rd.aliPay获取移动支付对象。 使用该插件需要到官网申请,具体说明和步骤详见官网地址:支付宝开放平台

配置:

为使得应用可以启动支付宝钱包客户端,并与之交换数据,同时可以从支付宝钱包客户端返回到应用,需要配置pluginConfigs文件的config。iOS需要配置,Android不需要配置。(注意:如果手机未安装支付宝钱包客户端,可以跳转网页版支付宝。如果已安装客户端,未正确配置文件,会引发异常) 方法如下:

名称:aliPay
配置步骤:
1.为Other Linker Flags 添加 -all_load

在Bulid Setting -> Linking -> Other Linker Flags中添加 -all_load字段

2.为URL Types添加支付宝回调scheme

配置aliPay专用的URL Scheme,使得本应用可以启动支付宝钱包客户端,并与之交换数据,同时可以从支付宝钱包客户端返回到应用

注意:

  1. identifier必须为 alipayShare

  2. URL Schemes 命名规则:ap+AppID
配置示例:
  <config pluginName="aliPay">
    <ios>
        <param key="Scheme" value="ap100203847741632"></param>
    </ios>
    <android>
    </android>
</config>
字段描述:
1、param-key:声明此字段为URL Scheme类型,identifier必须为 alipayShare。
2、param-value:对应Scheme类型的值,命名规则:ap+AppID。
Scheme类型的值:
  • aliPay : scheme建议跟商户的app有一定的标示度,要做到和其他的商户app不重复,否则可能会导致支付宝返回的结果无法正确跳回商户app。

支付状态(Number):

  • rd.aliPay.Succeed(9000) : 订单支付成功
  • rd.aliPay.Processing(8000) : 正在处理中
  • rd.aliPay.Failed(4000) : 订单支付失败
  • rd.aliPay.Cancel(6001) : 用户中途取消
  • rd.aliPay.NetError(6002) : 网络连接出错

ImageType(Number):

  • ImageTypeLocal: 本地图片,数值为0
  • ImageTypeWeb: 网络图片,数值为1

MediaType(Number):

  • MediaTypeText: 文本,数值为0
  • MediaTypeImage: 图片,数值为1
  • MediaTypeWebPage: 网页,数值为2

分享结果(Number):

  • ShareSuccess: 分享成功,数值为0
  • ShareFail: 分享失败,数值为1
  • ShareCancle: 用户取消分享,数值为2

方法:

对象:

回调方法:

关于iOS9支持:


初始化插件并启动.

var result = rd.aliPay.init(appID);    
说明:

初始化插件并启动.需要在每次启动第三方应用程序时调用。第一次调用后,会在支付宝的可用应用列表中出现。

参数:
  • appID: ( String ) 必选,注册所得appID.
返回值:
  • result: ( Boolean ) true,初始化成功. false,初始化失败.
示例:
var result = rd.aliPay.init('wxd930ea5d5a258f4f');

isAPAppInstalled


当前设备是否已经安装支付宝钱包.

var result = rd.aliPay.isAPAppInstalled();    
说明:

检测支付宝是否安装。只有支付宝已安装,才可以进行支付宝好友分享分享操作。

参数:

返回值:
  • result: ( Boolean ) true,支付宝已安装. false,支付宝未安装.
示例:
var result = rd.aliPay.isAPAppInstalled();

isAPAppSupportOpenApi


检测当前设备是否支持分享到支付宝.

var result = rd.aliPay.isAPAppSupportOpenApi();    
说明:

检测当前设备是否支持分享到支付宝。只有支持分享到支付宝,才可以进行支付宝好友分享分享操作。

参数:

返回值:
  • result: ( Boolean ) true,支持分享到支付宝. false,不支持分享到支付宝.
示例:
var result = rd.aliPay.isAPAppSupportOpenApi();

shareText


分享文本内容给支付宝好友

rd.aliPay.shareText(option,shareCallback);    
说明:

分享操作,通过option设置分享文本内容参数,分享结果传给shareCallback回调方法。

参数:
返回值:

无返回值

示例:
var option = {
            text: '我叫测试111',
            mediaType : 0,
        };

rd.aliPay.shareText(option,shareCallback);

shareImage


分享图片给支付宝好友

rd.aliPay.shareImage(option,shareCallback);    
说明:

分享操作,通过option设置分享图片参数,分享结果传给shareCallback回调方法。

参数:
返回值:

无返回值

示例:
var option = {
            imageType: 0,
            imageUrl: 'https://baidu.hao123.hello.png',
            mediaType : 1,
        };

rd.aliPay.shareImage(option,shareCallback);

shareWebPage


分享网页给支付宝好友

rd.aliPay.shareWebPage(option,shareCallback);    
说明:

分享操作,通过option设置分享网页参数,分享结果传给shareCallback回调方法。

参数:
返回值:

无返回值

示例:
var option = {
            imageType: 1,
            title: '标题',
            description: '描述',
            thumbUrl: 'cpts://main/img/pic1.jpg',
            wepageUrl: '网页地址',
            mediaType : 2,
        };

rd.aliPay.shareWebPage(option,shareCallback);

pay


移动支付

pay(option,callback);
说明:

移动支付,通过option设置支付参数,执行stateCallback回调函数。

参数:
返回值:

无返回值

示例:
    function stateCallback(state,success){
        alert(state+" "+ success);
    }
    var option={
            partner : '2088101568358171',
            seller_id : 'xxx@alipay.com',
            out_trade_no : '0819145412-6177',
            subject : '测试',
            body : '测试内容',
            total_fee : 0.01,
            notify_url : 'http://notify.msp.hk/notify.htm',
            service : 'mobile.securitypay.pay',
            payment_type : '1',
            _input_charset : 'utf-8',
            it_b_pay : '30m',
            privateKey :                 'MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANY6sXzRlqgmngX6m1G2BJQzsZuvAE2iXVB/e/T4CBHnvp63dQUesPZM1gyWm+wGjmYEr3QP4DiXJHSsCtUHUWbGiKeuodwUFr25LX9kDKBA/Vkol6NtTL/bkzPO48Epr5pb8jhcfFN0xUQfxcZR4p7oLcLA4sSY7H+dSAUL7NlVAgMBAAECgYEAjPpjArkKY+3F4DljLQqTSNQb9U/c6zoGHotGj5cJ+H6BOwGPyKbB3dQCqJYUVeaanxhGPiKUc6lDHGR7XGVMcxk1ckFHniGY7SGeddDs1wODyMVRXUuZleZ0I2QdhxuyK3RQzMiD9tRuSttq8wj+MKcXoYRN9bY+GOrtnQuHfAECQQD4/ytu7q9CvDCNpONUzjBXFVfAbQOAv5dWvBDyoS9aN9wicZ9EaJIcjozqUyyXqMek1/+v+ehnwr++NNo9reI1AkEA3EEwtI2d4EUkfp0gjPj29p22CgkVbHyfweVfBjuR5evaTFRJWzf9yuksogPS1JLeTqKXczW6mBdgj05iEr3+oQJBAI3Hli6rYEZKrAbrXbqbUXE0qOvb5wO3lHAB1FCjsTfY2NMQCZVFSfVSwjBnPdv5cfyONXw5e7khblba923phgUCQGO4gDy/AYPQyj0pFtu8vNPbg9f3VOPRaON43hUMU3ot1qBIaQ4Lw7Ri7fpMkN/9vvkLVFatNNY3f1hivLSPoQECQQDEaP8VLsUVd3QdoDruH4oIpqVbQ8xj3aEZKiA01w8QqLkElPG14+7EFA+gDKWjTghOduomnXDleVX34tVlAuCn',

           appScheme : 'aliPay369Cloud'
        }
     rd.aliPay.pay(option, stateCallback);

ShareTextOption


设置分享参数

    ShareTextOption {
 attribute String  text,
 attribute MediaType  mediaType,    
 }
说明:

JSON对象,用于设置分享文本信息的参数。

属性:
  • text: (String ) 必选 文本分享内容.
  • mediaType: ( MediaType ) 必选 分享类型.

ShareImageOption


设置分享参数

    ShareImageOption {
 attribute ImageType  imageType,
 attribute String imageUrl,
 attribute MediaType  mediaType,    
 }
说明:

JSON对象,用于设置分享图片信息的参数。

属性:
  • imageType: ( ImageType ) 必选 分享的图片类型
  • imageUrl: (String ) 必选 分享图片地址.
  • mediaType: ( MediaType ) 必选 分享类型.

ShareWebPageOption


设置分享参数

    ShareWebPageOption {
    attribute ImageType  imageType,
    attribute String  title,
    attribute String  description,
    attribute String  thumbUrl,
    attribute String  wepageUrl,
    attribute MediaType  mediaType,    
 }
说明:

JSON对象,用于设置分享文本信息的参数。

属性:
  • imageType: ( ImageType ) 必选 分享的网页缩略图图片类型
  • title: (String ) 必选 网页分享的标题
  • description: (String ) 必选 网页简要内容
  • thumbUrl: (String ) 必选 分享网页缩略图的链接地址
  • wepageUrl: (String ) 必选 ,分享网页的链接地址
  • mediaType: ( MediaType ) 必选 分享类型.

PayOption


支付信息设置

PayOption {
 property String  partner,
 property String  seller_id ,
 property String  out_trade_no ,
 property String  subject ,
 property String  body,    
 property Number  total_fee,
 property String  notify_url ,
 property String  service ,
 property String  payment_type ,
 property String  _input_charset,
 property String  it_b_pay,
 property String  privateKey,
 property String  appScheme
}
说明:

JSON对象,创建支付信息对象

属性:
  • partner: (String) 必选 合作者身份ID。签约的支付宝账号对应的支付宝唯一用户号。以 2088开头的16位纯数字组成。
  • seller_id: (String ) 必选 卖家支付宝账号。卖家支付宝账号(邮箱或手机 号码格式)或其对应的支付宝唯一用户号(以 2088开头的纯16位数字)。
  • out_trade_no: (String ) 必选 商户网站唯一订单号。支付宝合作商户网站唯一订单号。
  • subject: (String ) 必选 商品名称。商品的标题/交易标题/订单标 题/订单关键字等。该参数最长为 128 个汉字。
  • body: (String) 必选 商品详情。对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
  • total_fee: (Number) 必选 总金额。该笔订单的资金总额,单位为 RMB-Yuan。取值范围为 [0.01,100000000.00],精确到小数点后两位。
  • notify_url: (String ) 必选 服务器异步通知页面路径。支付宝服务器主动通知商户网站里指定的页面http路径。
  • service: (String ) 必选 接口名称。固定值为"mobile.securitypay.pay"。
  • payment_type: (String ) 必选 支付类型。固定值为:"1"(商品购买)。
  • _input_charset: (String) 必选 参数编码字符集。商户网站使用的编码格式,固定为"utf-8"。
  • it_b_pay: (String) 必选 未付款交易的超时时间。设置未付款交易的超时时间, 一旦超时,该笔交易就会自动被关闭。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(无论交易何时创建,都在0点关闭)。该参数数值不接受小数点,如 1.5h,可转换为90m。
  • privateKey: (String ) 必选 商户私钥,pkcs8格式。
  • appScheme: (String ) 必选 跳转客户端使用。与pluginConfigs中的配置保持一致。此属性仅iOS支持,Android不支持。
示例:
var option={
            partner : '2088101568358171',
            seller_id : 'xxx@alipay.com',
            out_trade_no : '0819145412-6177',
            subject : '测试',
            body : '测试内容',
            total_fee : 0.01,
            notify_url : 'http://notify.msp.hk/notify.htm',
            service : 'mobile.securitypay.pay',
            payment_type : '1',
            _input_charset : 'utf-8',
            it_b_pay : '30m',
            privateKey :                 'MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANY6sXzRlqgmngX6m1G2BJQzsZuvAE2iXVB/e/T4CBHnvp63dQUesPZM1gyWm+wGjmYEr3QP4DiXJHSsCtUHUWbGiKeuodwUFr25LX9kDKBA/Vkol6NtTL/bkzPO48Epr5pb8jhcfFN0xUQfxcZR4p7oLcLA4sSY7H+dSAUL7NlVAgMBAAECgYEAjPpjArkKY+3F4DljLQqTSNQb9U/c6zoGHotGj5cJ+H6BOwGPyKbB3dQCqJYUVeaanxhGPiKUc6lDHGR7XGVMcxk1ckFHniGY7SGeddDs1wODyMVRXUuZleZ0I2QdhxuyK3RQzMiD9tRuSttq8wj+MKcXoYRN9bY+GOrtnQuHfAECQQD4/ytu7q9CvDCNpONUzjBXFVfAbQOAv5dWvBDyoS9aN9wicZ9EaJIcjozqUyyXqMek1/+v+ehnwr++NNo9reI1AkEA3EEwtI2d4EUkfp0gjPj29p22CgkVbHyfweVfBjuR5evaTFRJWzf9yuksogPS1JLeTqKXczW6mBdgj05iEr3+oQJBAI3Hli6rYEZKrAbrXbqbUXE0qOvb5wO3lHAB1FCjsTfY2NMQCZVFSfVSwjBnPdv5cfyONXw5e7khblba923phgUCQGO4gDy/AYPQyj0pFtu8vNPbg9f3VOPRaON43hUMU3ot1qBIaQ4Lw7Ri7fpMkN/9vvkLVFatNNY3f1hivLSPoQECQQDEaP8VLsUVd3QdoDruH4oIpqVbQ8xj3aEZKiA01w8QqLkElPG14+7EFA+gDKWjTghOduomnXDleVX34tVlAuCn',                
            appScheme : 'aliPay369Cloud'
        };

shareCallback


用户分享回调函数。

       function shareCallback(shareResult){

}
参数:
  • shareResult: ( shareResult) 获取用户信息的状态结果。
返回值:

无返回值

示例:
       function shareCallback(shareResult){
    if(shareResult == rd.aliPay.ShareSuccess){
       alert('分享成功');
    }else if(shareResult == rd.aliPay.ShareFail){
       alert('分享失败');
    }
}

无返回值

stateCallback


用户支付的回调函数。在 state=rd.aliPay.Succeed,并且success=true的情况下, 证明支付成功,其它情况归为失败。

function stateCallback(state,success) { 
}
参数:
  • state: ( 支付状态) 支付状态信息。
  • success: (Boolean ) 操作结果信息,成功为true,否则为false。
返回值:

无返回值

添加HTTP请求白名单


为了强制增强数据访问安全,iOS9默认会把大部分的HTTP请求都改为HTTPS请求。本插件基于支付宝集成。所以,如果想在iOS9环境下使用本插件.则需要在pluginConfig.xml中进行配置。配置方式如下:

       <!--找到InfoPlistEdit节点 在这里设置HTTPS相关参数.-->
       <config pluginName="InfoPlistEdit">
    <ios>
        <!--true:表示开启http协议模式;false:表示关闭http协议模式,采用https请求协议,需要添加如下HTTP请求白名单.-->
        <param key="AllowAllHttpConnection" value="false"></param>
        <!--节点HttpWhiteList里填写的协议可以访问http请求.-->
        <param key="HttpWhiteList">
           <string>alipay.com</string>
           <string>alipayobjects.com</string>
        </param>
    </ios>
</config>
说明:

将以上配置参数拷贝至项目中的pluginConfig.xml文件中即可.若已有相同的配置项.则不需要再次拷贝.在原基础上添加即可.

添加URLScheme白名单


苹果官方指出在iOS9.0及以上系统中,如果使用canOpenURL方法,该方法所涉及到的URL scheme必须在工程中将它们列为白名单,否则不能使用。 所以,如果想在iOS9环境下使用本插件.则需要在pluginConfig.xml中进行配置。配置方式如下:

<config pluginName="InfoPlistEdit">
    <ios>
        <!--将所需要用到的scheme添加到这里.-->
        <param key="SchemeWhiteList">
            <string>alipay</string>
           <string>alipayshare</string> 
        </param>
    </ios>
</config>
说明:

将以上配置参数拷贝至项目中的pluginConfig.xml文件中即可.若已有相同的配置项.则不需要再次拷贝.在原基础上添加即可.