更新记录

1.3.0(2021-04-01)

优化了安卓端支宝付授权回调数据的方法.

1.2(2019-11-22)

新增,对支付宝,预付款授权订单返回的结果处理。

查看更多

平台兼容性

Android iOS
适用版本区间:4.4 - 11.0 适用版本区间:9 - 14

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


支付宝 android 和 ios 授权登录插件

一、实例化插件

const  plug=uni.requireNativePlugin("Html5app-AlipayAuth");

二. Andrid 版本使用说明:

因为本插件与官方提供的内置支付宝支付功能有冲突,所以本插件包含了支付功能在里面,使用本插件,

就不能再勾选官方提供的支付宝支付功能了,不如打包会发生冲突错误。

本插件使用的支宝版SDK版本: alipaySdk-15.6.4-20190624155522

1. 支付功能 介绍

plug.Payment({"orderInfo":""},ret=>{

});
需要服务器端生成一个 orderInfo 订单字符串内容,用于调起支付宝支付功能, 跟官方提供的一样。
app_id=2015052600090779&biz_content=%7B%22timeout_express%22%3A%2230m%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%221%22%2C%22body%22%3A%22%E6%88%91%E6%98%AF%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%22%2C%22out_trade_no%22%3A%22IQJZSRC1YMQB5HU%22%7D&charset=utf-8&format=json&method=alipay.trade.app.pay&notify_url=http%3A%2F%2Fdomain.merchant.com%2Fpayment_notify&sign_type=RSA2&timestamp=2016-08-25%2020%3A26%3A31&version=1.0&sign=cYmuUnKi5QdBsoZEAbMXVMmRWjsuUj%2By48A2DvWAVVBuYkiBj13CFDHu2vZQvmOfkjE0YqCUQE04kqm9Xg3tIX8tPeIGIFtsIyp%2FM45w1ZsDOiduBbduGfRo1XRsvAyVAv2hCrBLLrDI5Vi7uZZ77Lo5J0PpUUWwyQGt0M4cj8g%3D

获取订单信息: 参考支付宝APP支付文档

I. 成功支付 回调数据
{   "msg":"支付成功",
    "code":"9000",
    "retsult": {
        "code": "10000",
        "msg": "Success",
        "app_id": "201801240205xxxx",
        "auth_app_id": "201801240205xxxx",
        "charset": "UTF-8",
        "timestamp": "2019-08-03 04:37:03",
        "out_trade_no": "1564778212978",
        "total_amount": "0.10",
        "trade_no": "2019080322001476520543070119",
        "seller_id": "2088221737128735",
        "sign": "d9eccndF62qqCywTzCgapWOQky3HG2Uzwdx+lBvfJ4sVvVUClHMmmkh388PvlcoYLuzty94OYby3ZAgl6g9dYRhvUQ61hZq1dGHEaXcN+yMIaZCEsrJSWpI942neGisp5383IJM80nJC0Hu9SuIsQPR2qfg2BVbMuYNBcGS77RqedxlT6X+4VZU+DQ2YtTBNiqBLmyxr98LiQKBCFXYtVhCFy+hRe5EhwDT3+YU89Zbe+sLsBYNLMsf6VPqkuBOKbFqzBIPcsTQBD93o3I63/SPVMgIl7BcIta3WcaKi83P42xd9zz0wo19oIEtFIKsj3E78Uui41bgXThVnZYDXVw==",
        "sign_type": "RSA2"
        }
}
II. 其他原因 回调数据
{"msg":"支付操作已取消","retult":"",code:"6001"}

2. H5 网页支付宝支付转化成 APP原生模式支付,该功能是限于在安卓中使用。

plug.h5Pay({"url":"https://m.taobao.com"},ret=>{});
可以打开任何含有支付宝支付功能的H5 网页,当点击支付宝支付会栏截H5跳转到支付宝,而直接在本APP 调起原生的支付宝支付框。

3. 支付宝授权登录

plug.login({"appid":"201801240205xxx"},ret=>{

});
参数: appid 是你支付宝的应用ID, 填写之后,点击跳转到支付宝授权页面。
I. 授权成功 回调参数
{
    "msg": "授权成功",
    "result": {
        "auth_code": "c984f507191845cb99896324b67cZF52",
        "scope": "auth_user",
        "state": "init",
        "result_code": "SUCCESS",
        "app_id": "201903216361xxxx"
    },
    "code": 0
}
II. 取消授权
{
    "msg": "用户取消授权",
    "result": "",
    "code": 1
}

三、 IOS 版本介绍

I. 为了兼顾一些 虚拟物品的APP 也可以使用支付宝授权登录功能,ios 版本是简结版不包含支付功能,从而避免被苹果审核查到有支付宝相关SDK而不能上架问题。
II. 如果有需要支付宝支付功能的,还需勾选官方提供的支付宝支付选项,使用官方提供的API。

IOS支付宝授权与uniapp官方自带的支付宝支付功能有文件冲突,如果要使用支付宝支付功能,需要下载一个替换文件放在插件目录下,然后和插件一起打包。

下载附件文件.zip

1. IOS 授权登录说明:

I .需要在配置 manifest.json 文件中,配置 urlschemes , 名称自己,自定义随便写,这里主要是接收支付宝授权返回的相关信息使用。
 /* ios打包配置 */
 "ios" : {
    "urltypes":[
        {
            "urlschemes":["alipaydemo123"]
        }
    ]
}
II .授权调用方法
plug.login({"appid":"201801240205xxx","urlscheme":"alipaydemo123"},ret=>{

});
调起支付宝授权,多了一个 urlscheme 参数,填写的名称 和 配置文件中的一样, 返回的数据跟Android一样。
III. 授权成功 回调参数
{
    "msg": "授权成功",
    "result": {
        "auth_code": "c984f507191845cb99896324b67cZF52",
        "scope": "auth_user",
        "state": "init",
        "result_code": "SUCCESS",
        "app_id": "201903216361xxxx"
    },
    "code": 0
}
IIII. 取消授权
{
    "msg": "用户取消授权",
    "result": "",
    "code": 1
}

4. 授权成功后,获得 auth_code 临时凭证, 通过它提交到服务器上,再通过支付宝的相关 API 接口 来获得你想到的数据。

I. 例如获得会员用户信息

PHP 就可以这样写

    $aop = new \AopClient();
    $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
    $aop->appId =self::APPID;
    $aop->rsaPrivateKey = self::RSA_PRIVATE_KEY;
    $aop->alipayrsaPublicKey=self::ALIPAY_RSA_PUBLIC_KEY;
    $aop->apiVersion = '1.0';
    $aop->signType = 'RSA2';
    $aop->postCharset='UTF-8';
    $aop->format='json';
    $request = new AlipaySystemOauthTokenRequest();
    $request->setGrantType("authorization_code");

    $request->setCode($auth_code); //临时凭证

    $result = $aop->execute($request); 

    $accessToken=$result->alipay_system_oauth_token_response->access_token;

    $request01 = new AlipayUserInfoShareRequest(); //查询会员信息

    $result01 = $aop->execute ($request01,$accessToken); 
II 详细的介绍,请查看支付宝文档介绍

查询会员信息-》支付宝文档

Android 示例,扫一扫下载安装体验

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件本身不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问