下载文档

uexPingpp
更新时间:2016-05-10

1、简介

Ping++ 移动支付插件, 基于AppCan开源技术由ping++官方独立封装。
插件作者:来自ping++官方

1.1、业务限制资源规格限制说明

Ping++ 移动支付模块,封装了支付宝、微信支付、银联支付和百度钱包。
使用之前需要先到 [Ping++] 注册,并根据[文档] 部署 Server SDK。
温馨提示:
(1)、iOS插件uexPingpp如果用到微信(wx)、支付宝(alipay)或者测试模式,需要通过config.xml配置urlScheme。
如果使用使用微信,urlScheme必须包含您在微信开放平台申请的微信appid。

  • 微信的urlScheme的格式为wx开头,如 wx123abcdwer567s
  • 其他情况,可自定义。格式要求:首字母为英文字母,可包含数字、英文。

例如:

  1. <config desc="uexPingpp" type="URLSCHEME">
  2. <urlScheme name="uexPingpp" schemes="['wx123abcdwer567s','myapp001']"/>
  3. </config>

(2)、iOS 9 以后,为了预防APP通过非正常渠道获取用户的某些隐私信息,Apple启用了URLScheme白名单机制。

  • 为了正常使用插件的所有功能还需要配置URLScheme白名单(什么是URLScheme白名单)
  • 配置白名单方法请参考这里
  • 支付宝渠道需要进白名单添加的URLScheme是
    1. <string>alipay</string>
  • 微信渠道需要进白名单添加的URLScheme是
    1. <string>weixin</string>
    2. <string>wechat</string>

1.2、 UI展示

1.3、 相关下载

插件测试用例与自定义插件下载:点击此处

1.4、术语表


Path Types

协议头 Android对应路径 (其中”/sdcard/“等 同于”/storage/emulated/0/“) iOS对应路径
res:// widget/wgtRes/ widget/wgtRes
wgts:// /storage/emulated/0/widgetone/apps/ xxx(widgetAppId)/ /Documents/apps/xxx(widgetAppId)/
wgts:// /storage/emulated/0/widgetone/widgets/ /Documents/widgets/
file:///sdcard/ /storage/emulated/0/

2、API概览

2.1、方法

createPayment 调起支付控件

uexPingpp.createPayment(charge,scheme);
说明:
iOS支持支付宝(alipay)、微信支付(wx)、银联支付(upacp)和百度钱包(bfb_wap)。

  1. iOS百度钱包支付成功后会跳转到开发者指定的URL,需要跳转到scheme://pingppwappay?result=success 来跳回APP。

Android支持支付宝(alipay)、微信支付(wx)、银联支付(upacp)和百度钱包(bfb)。

  1. Android使用银联支付必须安装[银联安全支付插件](http://mobile.unionpay.com/download/securepayplugin)。

回调 cbCreatePayment

iOS和Android使用微信支付必须安装微信客户端。

参数:
平台支持:
Android2.3+
iOS6.0+
版本支持:
3.0.0+
示例:

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>Ping++ 支付模块</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. uexPingpp.cbCreatePayment = function(opId, dataType, data){
  10. var json = JSON.parse(data);
  11. alert(json.result);
  12. }
  13. }
  14. function createPayment() {
  15. var xhr = new XMLHtttextareaquest();
  16. xhr.open("POST", "YOUR-BACKEND-CHARGE-URL", true);
  17. xhr.setRequestHeader("Content-type", "application/json");
  18. xhr.send(JSON.stringify({channel: "alipay", amount: 10}));
  19. xhr.onreadystatechange = function () {
  20. if (xhr.readyState == 4 && xhr.status == 200) {
  21. var charge = xhr.responseText;
  22. uexPingpp.createPayment(charge, "yoururlscheme");
  23. }
  24. }
  25. }
  26. </script>
  27. </head>
  28. <body>
  29. <div class="tit">Ping++ 支付模块</div>
  30. <div class="conbor">
  31. <div class="consj">
  32. <span>支付</span>
  33. <input class="btn" type="button" value="支付" onclick="createPayment();">
  34. </div>
  35. </div>
  36. </body>
  37. </html>

getVersion 获取sdk版本号

uexPingpp.getVersion();
说明:
获取SDK的版本号
回调 cbGetVersion
参数:

平台支持:
Android2.3+
iOS6.0+
版本支持:
3.0.0+
示例:

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>Ping++ 支付模块</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. uexPingpp.cbGetVersion = function(opId, dataType, data){
  10. alert(data);
  11. }
  12. }
  13. </script>
  14. </head>
  15. <body>
  16. <div class="tit">Ping++ 支付模块</div>
  17. <div class="conbor">
  18. <div class="consj">
  19. <span>获取版本号</span>
  20. <input class="btn" type="button" value="获取版本号" onclick="uexPingpp.getVersion();">
  21. </div>
  22. </div>
  23. </body>
  24. </html>

2.2、回调方法

cbCreatePayment 支付结果回调方法

uexPingpp.cbCreatePayment(opId,dataType,data);
说明:
支付结果回调方法
参数:

  1. opId:(Number类型) 必选操作ID,此函数中不起作用,可忽略。
  2. dataType:(Number类型) 必选数据类型详见[CONSTANT]中Callback方法数据类型
  3. data:(String类型) 必选json格式如下:{"result":"success","error":{"code":0,"msg":""}}data中的errorcode含义:
0 1 2 3 4 5 6 7 8 9 10
无效的 Charge 无效的 Credential 无效的 渠道 微信客户 端未安装 微信客户 端版本 不支持 OpenApi 取 消 找不到View Controller;(仅 在iOS出现) 测试模 式异步 通知失败 渠道返 回失败 网络 错误 未知 错误

版本支持:
3.0.0+

cbGetVersion 获取版本号的回调方法

uexPingpp.cbGetVersion(opId,dataType,data);
说明:
获取版本号的回调方法
参数:

  1. opId:(Number类型) 必选操作ID,此函数中不起作用,可忽略。
  2. dataType:(Number类型) 必选数据类型详见[CONSTANT]中Callback方法数据类型
  3. data:(String类型) 必选SDK版本号

版本支持:
3.0.0+