DCloud_App_Array
DCloud_App_Array
  • 发布:2014-10-17 18:40
  • 更新:2019-08-20 15:31
  • 阅读:189316

支付插件配置

分类:HTML5+

plus的支付API,支持支付宝App支付(移动快捷支付)、微信支付和苹果的IAP应用内支付。
配置参数需要提交云端打包后才能生效,如果需要真机运行生效请使用自定义基座

开发指导

支付流程如下:
支付流程图

plus API使用步骤:

  1. 调用plus.payment.getChannels()获取系统支持的支付通道;
  2. 调用plus.payment.request()发起支付请求。

示例代码

var channel=null;  
// 1. 获取支付通道  
function plusReady(){ //uni-app中将此function里的代码放入vue页面的onLoad生命周期中  
    // 获取支付通道  
    plus.payment.getChannels(function(channels){  
        channel=channels[0];  
    },function(e){  
        alert("获取支付通道失败:"+e.message);  
    });  
}  
document.addEventListener('plusready',plusReady,false);//uni-app不需要此代码  

var ALIPAYSERVER='http://demo.dcloud.net.cn/helloh5/payment/alipay.php?total=';  
var WXPAYSERVER='http://demo.dcloud.net.cn/helloh5/payment/wxpay.php?total=';  
// 2. 发起支付请求  
function pay(id){  
    // 从服务器请求支付订单  
    var PAYSERVER='';  
    if(id=='alipay'){  
        PAYSERVER=ALIPAYSERVER;  
    }else if(id=='wxpay'){  
        PAYSERVER=WXPAYSERVER;  
    }else{  
        plus.nativeUI.alert("不支持此支付通道!",null,"捐赠");  
        return;  
    }  
    var xhr=new XMLHttpRequest(); //uni-app中请使用uni的request api联网  
    xhr.onreadystatechange=function(){  
        switch(xhr.readyState){  
            case 4:  
            if(xhr.status==200){  
                plus.payment.request(channel,xhr.responseText,function(result){  
                    plus.nativeUI.alert("支付成功!",function(){  
                        back();  
                    });  
                },function(error){  
                    plus.nativeUI.alert("支付失败:" + error.code);  
                });  
            }else{  
                alert("获取订单信息失败!");  
            }  
            break;  
            default:  
            break;  
        }  
    }  
    xhr.open('GET',PAYSERVER);  
    xhr.send();  
}  

注:第二步中获取到的订单数据需要在服务器通过支付宝平台获取PID和密钥生成。

HBuilder应用配置

支付插件添加方法具体步骤如下:

  1. 点击manifest.json文件,可以在可视化界面的模块配置中勾选支付模块。也可以在“代码视图”的permissions节点下添加Payment节点:

    • 5+App、wap2app配置图:
      manifest.json添加支付权限
    • uni-app配置图
    • 离线打包需要注意选择好支付模块
  2. 在manifest.json可视化界面的sdk配置中配置支付参数:

    • 5+App、wap2app配置图:
      manifest.json添加支付权限
    • uni-app配置图
    • 离线打包需要自行在原生工程中配置好参数

alipay节点下配置支付宝相关信息
scheme值是本App的scheme,用于iOS平台调用支付宝的“快捷支付”返回时用到的标识,推荐使用小写字符串。新版HBuilderX已经不需要配置此scheme,云打包自动分配处理了。关于如何为本App设置scheme,参考
weixin节点下配置微信支付相关信息
appid值为在微信开放平台申请应用的AppID值。
appleiap节点下配置苹果应用内支付相关信息
在HBuilder基座中无法使用此支付通道,需要提交云端打包才可使用。

支付宝功能申请

登录支付宝账号,创建应用接入支付宝App支付能力,包括以下步骤:

  1. 创建应用(获取appid)
  2. 开通App支付功能
  3. 配置密钥(获取公钥、私钥)
    参考支付宝官方文档App支付快速接入

服务器生成订单示例(PHP)
参考示例代码支付宝App支付生成支付订单
老版本“移动快捷支付”参考示例代码支付宝移动快捷支付
C#生成支付宝订单示例

微信支付功能申请

  1. 使用微信支付功能需到微信开放平台申请移动应用并开通支付功能
    微信APP支付接入商户服务中心
    申请应用后可以获取AppID和AppSecret值。

  2. 开通支付功能后可获取支付业务服务器配置数据
    PARTNER:财付通商户号
    PARTNER_KEY:财付通密钥
    PAYSIGNKEY:支付签名密钥

服务器生成订单示例(PHP)
参考示例代码微信支付V3

苹果应用内支付(IAP)使用详细说明

IOS 应用内支付接口使用说明

12 关注 分享
Curtis Elijah 木记 你就浅浅一笑 扯淡1992 Trust 583181142@qq.com connor 赤鹰 skysowe 莫迁若 1752027334@qq.com

要回复文章请先登录注册

DCloud_App_Array

DCloud_App_Array (作者)

回复 3233317460@qq.com:
不支持一个APP绑定多个微信支付的appid。
2019-08-20 15:31
爱吃鱼的靖哥哥

爱吃鱼的靖哥哥

参考代码为啥不能来个java的啊
2019-08-20 10:25
3233317460@qq.com

3233317460@qq.com

你好,如果现在想一个APP支持多个商户,能否在前端配置多个Appid???
2019-08-19 14:50
1539628835@qq.com

1539628835@qq.com

打包出来ios 支付宝支付出现闪退是什么原因@DCloud_App_Array
2019-08-13 10:10
小晓晓

小晓晓

回复 1752027334@qq.com:
我也有问题
2019-07-30 15:59
netdeveloper

netdeveloper

多商户如何实现?
2019-07-14 18:51
1720036678@qq.com

1720036678@qq.com

回复 清华大学落榜生:
兄弟 我也遇到这样的问题 求解决方法
2019-06-12 23:14
1720036678@qq.com

1720036678@qq.com

回复 596908546@qq.com:
大哥 你的弄好没?我的不能进行沙箱测试,调用可以 但底层唤醒的支付宝APP 一直是正式的,而且一起提示 系统繁忙。暂时还没有真实帐号。
2019-06-12 22:49
596908546@qq.com

596908546@qq.com

请问支付宝的话支持沙箱模式吗?
2019-05-27 11:13
596908546@qq.com

596908546@qq.com

回复 minwoo_c@163.com:
请问解决了吗?
2019-05-27 11:11
1710647554@qq.com

1710647554@qq.com

微信服务商方式调起微信支付能支持吗?可以付费给支持的人
2019-05-20 09:47
1415279284@qq.com

1415279284@qq.com

请问一下 hbulider 集成到Android 下无法唤起支付微信支付。在Android端已经做了微信支付的配置。后台也访问到了。但是就是调不起微信的支付页面。WXPayEntryActivity 端直接返回支付失败。微信支付页就是出不来
2019-05-09 11:14
零充

零充

支付接口这块,需要ajax调用后台的已签名参数,再发起支付申请。
比如配置了ALIPAYSERVER = http://xxx.com/getxxx
然后plus.payment.request,插件会自动去alipayserver ajax取参数,然后HB再调起支付页面。

但是服务器有做权限验证,这个插件,ajax取ALIPAYSERVER 的值时,能不能自定义header传参?要不取不到服务器的参数,通过不了服务器验证。
2019-04-12 16:28
564986683@qq.com

564986683@qq.com

mui拉起苹果应用内支付,如果用户是第一次支付,需要去绑定银行卡或者支付宝什么的,此时接口会走failcallback,跳转到app store,绑定成功后,会在apple Store拉起支付,用户成功支付后,并没有订单信息返回,出现了丢单的情况,请问一下这个问题需要怎么解决。
2019-03-28 18:26
清华大学落榜生

清华大学落榜生

回调验证 在哪呢
2019-03-27 16:08
清华大学落榜生

清华大学落榜生

选择支付宝支付 没调起app -100错误 是什么意思?
2019-03-21 10:04
清华大学落榜生

清华大学落榜生

@DCloud_App_Array 使用的是支付宝的 沙箱配置, 不能调起APP 调用接口出现服务器繁忙,app弹出ALIN10146错误。
2019-03-19 15:59
Bridegroom777

Bridegroom777

在vue里面,为什么我的plus.payment.request这个不执行啊,支付通道都获取了的
2019-03-15 11:46
www.1991un@qq.com

www.1991un@qq.com

就没有个返回码对照表吗我去
2019-03-14 22:35
1091271822@qq.com

1091271822@qq.com

回复 1752027334@qq.com:
老哥啊,我也是这样的情况,一直返回code:-100,payment微信-1 到底是什么情况啊
2019-03-07 13:27
1752027334@qq.com

1752027334@qq.com

因为微信支付,整整填了两天的坑,终于完美解决了微信返回-1的问题,成功付了一分钱,并正确返回app,在这里说明两点:
1、官方提供的示例没有任何问题
2、大部分原因都是因为配置的问题

有问题欢迎和我交流~
2019-02-14 19:41
minwoo_c@163.com

minwoo_c@163.com

支付宝的话 服务端生成订单可以用沙箱环境嘛? 我看了下 支付宝官方sdk说明是说 如果不配置默认使用正式环境。 uni这边没有什么配置的话是不默认也是使用正式环境创建订单的。 如果想用沙箱环境调试的话要怎么配置呢?
2019-02-14 11:49
842200016@qq.com

842200016@qq.com

@DCloud_App_Array ,ios测试内购项目的支付在沙盒环境下测试成功,怎么放到正式环境测试,谢谢
2019-01-23 14:33
1142275013@qq.com

1142275013@qq.com

能把demo步骤 一步一步写好吗?都出文档了 难道不能再花点时间写的详细点?
2019-01-12 12:43
grantz@126.com

grantz@126.com

回复 826096331@qq.com:
... 骗子 白白浪费了 钱 我看官方提供的文档就调好了 大家千万别去充钱买这个东西
2018-10-26 15:04
DCloud_App_Array

DCloud_App_Array (作者)

回复 wangyuyu247494692@qq.com:
随便配置,比如你自己应用的英文简称(避免与常用应用的scheme冲突即可)
2018-07-31 11:13
wangyuyu247494692@qq.com

wangyuyu247494692@qq.com

支付宝下的scheme怎么配置的??
2018-07-30 09:16
527193982@qq.com

527193982@qq.com

回复 769075479@qq.com:
现在搞好了吗
2018-07-12 17:03
lyh_lu@126.com

lyh_lu@126.com

回复 Will_sd:
我都跟你出现一样的问题,你怎么处理的?
2018-04-09 14:33
769075479@qq.com

769075479@qq.com

为什么打包后 微信支付报错-100
2018-03-08 20:25
826096331@qq.com

826096331@qq.com

亲测,官网上下载的都是坑,搞好好几天才搞好的;
微信请参考下这里:http://www.erdangjiade.com/php/2750.html
支付宝请参考下这里:http://www.erdangjiade.com/php/2475.html
2018-01-08 23:31
1473096439@qq.com

1473096439@qq.com

请问支持最新的支付宝支付吗?
2017-12-16 00:36
605893810@qq.com

605893810@qq.com

回复 826096331@qq.com:
ALIPAYSERVER 和WXPAYSERVER能改变吗
2017-12-14 18:31
JRay

JRay

回复 1064121439@qq.com:
我也遇到这个问题了,能问一下你解决了吗?
2017-12-12 13:01
826096331@qq.com

826096331@qq.com

回复 YT:
你哪个眼睛看到的是官方的代码
2017-11-02 21:59
YT

YT

回复 826096331@qq.com:
想钱想疯了,复制官方的代码
2017-10-20 16:56
971270272@qq.com

971270272@qq.com

回复 893700093@qq.com:
同问啊。你解决了么
2017-10-20 13:15
源一

源一

请问一个app如何支持微信支付到不同的商户appid???
2017-09-19 11:34
BigSource

BigSource

mark
2017-09-13 17:01
893700093@qq.com

893700093@qq.com

微信和阿里支付之外的支付不支持吗?有没有案例啊?
2017-08-02 23:19
826096331@qq.com

826096331@qq.com

Dcloud官方给的到处是坑,害我研究了好几天才搞定的,两个支付亲测,完美实现:
微信支付demo请参考下这里:http://www.erdangjiade.com/php/2750.html
PHP支付宝demo请参考下这里:http://www.erdangjiade.com/php/2475.html
2017-07-09 12:34
413408219@qq.com

413408219@qq.com

能不能呢个提供一个.Net版的服务端的 微信支付?
2017-06-07 16:17
你YY个呸

你YY个呸

你们想知道index.php在哪里吗?你们想知道为什么一直调不起支付吗?你们想知道为什么一直报错-1吗?qq3342273365
2017-06-01 12:24
OnePein

OnePein

回复 314089026@qq.com:
解决了吗?
2017-05-25 09:19
OnePein

OnePein

回复 lukas:
同问,你的index.php怎么解决的
2017-05-25 09:19
OnePein

OnePein

微信支付的index.php哪里去了?能不能给个完整的源代码
2017-05-25 09:18
ali

ali

回复 lukas:
你怎么做了 index.php 自己写出来了吗
2017-05-25 01:35
930206712@qq.com

930206712@qq.com

回复 nick_sh:
你的打包出来ios 支付出现过闪退吗?
2017-05-20 11:27
绝版咖啡

绝版咖啡

支付宝沙盒环境调用不起来的吗
2017-05-19 09:47
282963812@qq.com

282963812@qq.com

求助:支付宝支付,返回支付失败 error.code=-100, 支付宝62001 用户中途取消支付操作, 是什么原因?? 搞了3天了还是这样。
2017-04-24 18:23
1064121439@qq.com

1064121439@qq.com

回复 nick_sh:
我直接输入订单信息 ,访问支付宝服务端,返回系统繁忙,连状态码都木有
2017-03-22 22:57
nick_sh

nick_sh

回复 shunzizhan@163.com:
我的支付宝支付好了,是因为这个接口使用的支付宝的老的手机支付接口,新的接口配置不行,按老接口文档 https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103563&docType=1
2017-03-10 09:27
安之若素

安之若素

能不能提供个详细的DEMO,这样不等于没写!就这样糊弄?
2017-03-06 11:13
shunzizhan@163.com

shunzizhan@163.com

回复 nick_sh:
我返回的也是error.code=-100,不知道你解决了没有
2017-01-21 22:33
南宫萧尘

南宫萧尘

APP支付,支付宝,C#的方法,可以参考这个:http://www.cnblogs.com/nangong/p/5b5db8769efcd7e10647869fd5ee5539.html
2017-01-11 15:24
nick_sh

nick_sh

求助:支付宝支付,返回支付失败 error.code=-100,是什么原因??
2017-01-10 16:35
lukas

lukas

微信支付v3在 github 上缺少 index.php 吧?
https://github.com/dcloudio/H5P.Server/tree/master/payment/wxpayv3
"部署服务器后访问index.php获取订单"
但是该目录下没有 index.php 文件!
2017-01-10 11:29
sovy.cool@163.com

sovy.cool@163.com

支付失败:-100[100]:[payment微信:-1]General errors
2016-10-24 11:33
924618338@qq.com

924618338@qq.com

回复 战士:
我的支付宝进去就出现交易订单处理失败,请稍后再试(ALI64)的错误,请问你的问题解决没啊
2016-10-22 20:51
战士

战士

我的支付宝支付:一点支付,就弹出:用户中途取消支付(62001),求指导?
2016-10-10 11:52
阿凡提

阿凡提

<?php
header('Access-Control-Allow-Origin: *');
header('Content-type: text/plain');
echo 'success';
?>
返回只有这个?没有以前pc支付接口那种返回:if($_POST['trade_status'] == 'TRADE_FINISHED') {......?
2016-09-30 09:38
314089026@qq.com

314089026@qq.com

请问这个url地址是什么啊?var WXPAYSERVER='http://demo.dcloud.net.cn/helloh5/payment/wxpay.php?total=';
2016-09-28 18:47
wenju

wenju

回复 qingnian2:
我也遇到了,你解决了吗
2016-07-29 08:12
wenju

wenju

回复 yuhuahe@foxmail.com:
我我也遇到了,你解决了吗
2016-07-29 08:11
wenju

wenju

回复 帝普一世:
大神你的这个问题解决了吗
2016-07-29 08:10
众生平等

众生平等

用证书打包微信没问题支付宝直接返回-100,不用证书打包支付宝没问题,微信返回-1
2016-07-22 17:15
suxiaomei_y@163.com

suxiaomei_y@163.com

回复 ucmxzz:
同问这个问题
2016-07-15 16:46
我不是汪小东

我不是汪小东

回复 帝普一世:
您好,请问您的问题解决了嘛?
2016-07-11 15:54
15225066116@qq.com

15225066116@qq.com

选择支持第三方插件,为什么我的配置文件中没有啊!
2016-06-30 10:52
lsl_0627@163.com

lsl_0627@163.com

微信支付调用一次以后就不能调用了,有没有人做成功?和官方的例子对照了很久,还是不行,服务器端用的java
2016-06-25 09:31
Element

Element

回复 Element:
@DCloud_App_Array 现在必须要在微信开放平台申请的APPID才能使用支付吗?公众号可以用吗?
2016-06-13 10:38
Element

Element

请问微信支付目前开放平台和公众号支付有什么区别?DCLOUD目前支持公众号支付了吗?
2016-06-13 10:20
48607055@qq.com

48607055@qq.com

回复 Will_sd:
可以把你写的例子给我看看吗
2016-06-07 13:54
Will_sd

Will_sd

alipay节点下的scheme真是随便写就可以吗?
我现在Hbuilder上直接运行android 和ios 都可以打开支付宝进行支付。
android离线打包后 支付宝支付也没有问题,但ios离线打包后就出现了-7,业务参数配置缺失的错误。
在http://ask.dcloud.net.cn/article/282 中对该错误的解释是:使用第三方SDK时缺失SECRET、APPID、APPKEY等数据。
服务器端的订单信息确认过是没有问题的,哪位大神知道我这是哪地方需要填写SECRET、APPID、APPKEY呢。
先谢过了
2016-06-04 16:55
DCloud_App_Array

DCloud_App_Array (作者)

回复 wang_:
这个参数是服务器上处理的,可以随意提交参数,由服务器处理即可。
2016-05-30 20:55
wang_

wang_

var ALIPAYSERVER='http://demo.dcloud.net.cn/helloh5/payment/alipay.php?total=';
在这个链接中,我可以多带几个参数吗?这个链接要换成我公司的项目链接?
2016-05-27 14:33
kongdeyuan

kongdeyuan

添加了 为什么总是显示没有添加呢 卧槽能不能解决呢
2016-05-21 21:41
帝普一世

帝普一世

支付失败:-100[100]:[payment微信:-1]General errors
2016-05-07 16:46
wang_

wang_

回复 wqy1915:
我也遇到这个问题了,请问一下您获取到了吗
2016-05-04 10:22
wang_

wang_

支付宝支付中“scheme”是什么参数
2016-05-03 11:02
山有扶苏

山有扶苏

回复 qingnian2:
正在搞hbuilder平台支付宝,一直都不行,可以给给例子代码吗?谢谢
2016-04-23 17:55
qingnian2

qingnian2

回复 qingnian2:
我已经在android 原生端成功实现了支付宝,微信支付,但是换到hbuilder平台支付宝也通了,就是微信会出这个问题,有人可以解答一下吗?
2016-04-22 12:06
qingnian2

qingnian2

微信支付时,总是提示‘打包配置的appid[scheme]和订单中的不一致’,但我真的设成一样的了,有没有人可以帮帮我?
2016-04-22 12:04
yuhuahe@foxmail.com

yuhuahe@foxmail.com

回复 Christ:
我也遇到了,你解决了吗
2016-04-20 18:40
yuhuahe@foxmail.com

yuhuahe@foxmail.com

“----支付失败--------
【9】:打包配置的appid[scheme]和订单中的不一致,http://ask.dcloud.net.cn/article/282


我用微信支付通道。预处理订单生成了,在执行plus.payment.request(pays[id],varpay,function(){})方法的时候,报了这个错。我manifest.json和java后台用的appid都是公众号的appid。但还是报上面的错。是什么原因?
2016-04-20 17:23
lizylegend

lizylegend

回复 DCloud_App_Array:
我是按照这个拼接的。。。。。还是不对呢= =,一直提示AL159
2016-04-13 14:36
DCloud_App_Array

DCloud_App_Array (作者)

回复 lizylegend:
订单数据如何生成的,请参考这里的代码:https://github.com/dcloudio/H5P.Server/tree/master/payment/alipay
订单数据格式参考示例:
http://demo.dcloud.net.cn/payment/alipay/?total=1
2016-04-12 12:29
DCloud_App_Array

DCloud_App_Array (作者)

回复 Christ:
“打包配置的appid[scheme]和订单中的不一致”是什么意思?没明白你描述的问题。
2016-04-12 12:26
lizylegend

lizylegend

支付宝支付每次都是62001,请问怎么解决= =
2016-04-11 16:10
Christ

Christ

打包配置的appid[scheme]和订单中的不一致; 一直出现这个问题,我可以保证在manifest.json中配置的appid和我在微信开放平台申请到的appid是一致的,开始还是出现这个问题,能给回复下是什么原因吗?
2016-04-08 16:44
wqy1915

wqy1915

支付宝的 scheme 怎么获取
2016-03-16 11:41
DCloud_App_Array

DCloud_App_Array (作者)

回复 旭仔:
请在manifest.json中的plus->distribute->plugins->payment节点下添加“appleiap”相关的节点,并提交云端打包
2016-03-07 12:04
旭仔

旭仔

我把channel.id打印出来,无论是使用模拟器和真机都不能获取值为:appleiap的channel.id,可以回复一下么?!项目卡在这了!块急死了!@DCloud_App_Array
plus.payment.getChannels(function(channels){
for(var i in channels){
var channel=channels[i];
alert(channel.id);
if(channel.id==='appleiap'){
iap=channel;
}
}
2016-03-06 21:48
ccz

ccz

java是不是不需要公钥私钥,只要合作id和安全校验码KEY就可以了,@DCloud_App_Array
2016-03-02 15:23
mackes

mackes

这个东西是刚起来就死了吗?怎么都没人回答的?额
2015-12-31 13:22
mackes

mackes

回复 mackes:
这是怎么回事啊?
2015-12-30 19:52
mackes

mackes

评论呢?
2015-12-30 19:51
mackes

mackes

微信支付v3提示62000,然后就 -100 -100 -100了,求解
2015-12-30 18:45
ucmxzz

ucmxzz

跳到微信只出现确定按钮,点击按钮返回,提示支付失败-100,怎么破
2015-12-07 20:37
大山里的男人

大山里的男人

回复 大山里的男人:
是哪里配置错了吗、
2015-11-24 10:26