支付插件配置

HBuilder 基座已实现H5 plus的支付API,现已集成支付宝快捷支付平台。使用支付功能前必须在支付宝网站开通”快捷支付“服务,并配置服务器生成订单信息。

开发指导

\n

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

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

示例代码

var channel=null;
// 1. 获取支付通道
function plusReady(){
// 获取支付通道
plus.payment.getChannels(function(channels){
channel=channels[0];
},function(e){
alert("获取支付通道失败:"+e.message);
});
}
document.addEventListener('plusready',plusReady,false);

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();
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();
}
\n

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

HBuilder应用配置

\n

分享插件添加方法具体步骤如下:
1. 点击manifest.json文件的“代码视图”,在permissions节点下添加Payment节点:
manifest.json添加支付权限


  1. 在plus -> distribute -> plugins 节点下添加payment节点:
    manifest.json添加支付权限
    alipay节点下配置支付宝相关信息
    scheme值为iOS平台调用支付宝的“快捷支付”应用返回时用到的标识,推荐使用小写字符串。
    weixin节点下配置微信支付相关信息
    appid值为在微信开放平台申请应用的AppID值。
    appleiap节点下配置苹果应用内支付相关信息
    在HBuilder基座中无法使用此支付通道,需要提交云端打包才可使用。
\n

支付宝功能申请

\n

  1. 登录支付宝账号,签约申请“移动快捷支付”功能,操作流程参考:
    支付宝帮助中心
  2. 获取PID,参考教程:
    获取合作者身份ID
  3. 生成密钥(公钥和私钥),并提交到支付宝,参考教程:
    生成RSA密钥
    上传公钥
\n

服务器生成订单示例(PHP)
参考开源示例代码github-支付宝
C#生成支付宝订单示例

微信支付功能申请

\n

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

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

\n

参考开源示例代码github-微信支付

应用内支付(IAP)使用说明

\n

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


7 分享
Curtis Elijah 木记 你就浅浅一笑 扯淡1992 DCloud_客服_Trust 583181142@qq.com
源一

源一

请问一个app如何支持微信支付到不同的商户appid???
0 赞 2 天前
BigSource

BigSource

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

893700093@qq.com

微信和阿里支付之外的支付不支持吗?有没有案例啊?
0 赞 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
0 赞 2017-07-09 12:34
413408219@qq.com

413408219@qq.com

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

你YY个呸

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

OnePein 回复 314089026@qq.com

解决了吗?
0 赞 2017-05-25 09:19
OnePein

OnePein 回复 lukas

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

OnePein

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

ali 回复 lukas

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

930206712@qq.com 回复 nick_sh

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

绝版咖啡

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

282963812@qq.com

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

1064121439@qq.com 回复 nick_sh

我直接输入订单信息 ,访问支付宝服务端,返回系统繁忙,连状态码都木有
0 赞 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
0 赞 2017-03-10 09:27
安之若素

安之若素

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

shunzizhan@163.com 回复 nick_sh

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

南宫萧尘

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

nick_sh

求助:支付宝支付,返回支付失败 error.code=-100,是什么原因??
0 赞 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 文件!
0 赞 2017-01-10 11:29
sovy.cool@163.com

sovy.cool@163.com

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

924618338@qq.com 回复 战士

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

战士

我的支付宝支付:一点支付,就弹出:用户中途取消支付(62001),求指导?
0 赞 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') {......?
0 赞 2016-09-30 09:38
314089026@qq.com

314089026@qq.com

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

wenju 回复 qingnian2

我也遇到了,你解决了吗
0 赞 2016-07-29 08:12
wenju

wenju 回复 yuhuahe@foxmail.com

我我也遇到了,你解决了吗
0 赞 2016-07-29 08:11
wenju

wenju 回复 帝普一世

大神你的这个问题解决了吗
0 赞 2016-07-29 08:10
众生平等

众生平等

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

suxiaomei_y@163.com 回复 ucmxzz

同问这个问题
0 赞 2016-07-15 16:46
我不是汪小东

我不是汪小东 回复 帝普一世

您好,请问您的问题解决了嘛?
0 赞 2016-07-11 15:54
15225066116@qq.com

15225066116@qq.com

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

lsl_0627@163.com

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

Element 回复 Element

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

Element

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

48607055@qq.com 回复 Will_sd

可以把你写的例子给我看看吗
0 赞 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呢。
先谢过了
0 赞 2016-06-04 16:55
DCloud_App_Array

DCloud_App_Array 回复 wang_

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

wang_

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

kongdeyuan

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

帝普一世

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

wang_ 回复 wqy1915

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

wang_

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

山有扶苏 回复 qingnian2

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

qingnian2 回复 qingnian2

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

qingnian2

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

yuhuahe@foxmail.com 回复 Christ

我也遇到了,你解决了吗
0 赞 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。但还是报上面的错。是什么原因?
0 赞 2016-04-20 17:23
lizylegend

lizylegend 回复 DCloud_App_Array

我是按照这个拼接的。。。。。还是不对呢= =,一直提示AL159
0 赞 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
0 赞 2016-04-12 12:29
DCloud_App_Array

DCloud_App_Array 回复 Christ

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

lizylegend

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

Christ

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

wqy1915

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

DCloud_App_Array 回复 旭仔

请在manifest.json中的plus->distribute->plugins->payment节点下添加“appleiap”相关的节点,并提交云端打包
0 赞 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;
}
}
0 赞 2016-03-06 21:48
ccz

ccz

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

mackes

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

mackes 回复 mackes

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

mackes

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

mackes

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

ucmxzz

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

大山里的男人 回复 大山里的男人

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

大山里的男人

换成我的参数就不对了。支付宝,交易订单处理失败,请稍候再试。(ALI64)
0 赞 2015-11-24 10:25
朋也

朋也

@DCloud_App_Array 有Java服务器的代码吗?没有的话,可以提供一下返回的数据格式吗?就是在mui里获取到的xhr.responseText ,php的代码看不懂,不知道最后格式化成了什么样
0 赞 2015-10-22 16:58
DCloud_App_Array

DCloud_App_Array 回复 战士

开放平台的
0 赞 2015-10-15 11:56
战士

战士

现在微信支付v3版用的是公众平台还是开放平台?
0 赞 2015-10-15 09:14
topSWdept

topSWdept 回复 superNg

你好,返回-1的错误解决了吗?我的也是返回-1.急死人了,。
0 赞 2015-09-09 10:13
topSWdept

topSWdept 回复 好好学习

你好,你的错误解决了吗?我的也是返回-1
0 赞 2015-09-09 10:12
fategaga

fategaga

ALIPAYSERVER 这个参数应该是怎么个情况?
0 赞 2015-08-26 22:53
winicafe

winicafe

请问IOS 支付宝的scheme到底是什么呢?
0 赞 2015-08-13 19:58
superNg

superNg

微信V3 支付支付返回状态码:-1这是什么情况,求高手帮忙
0 赞 2015-08-01 16:29
superNg

superNg

微信V3 支付支付返回状态码:-1这是什么情况,求高手帮忙
0 赞 2015-08-01 16:29
昵称又已经存在

昵称又已经存在

有没有C#生成微信App支付订单的Demo啊,现在微信官方好像只有Java和PHP的,坑啊!
0 赞 2015-07-29 15:00
levi

levi

支付能支持 app store 支付吗?
0 赞 2015-07-13 14:00
地图

地图

可以开发支持 银联 的接口吗? 银联接口需求也很大呀
0 赞 2015-07-10 10:43
DCloud_App_Array

DCloud_App_Array 回复 Viccy

订单数据是服务器生成的,服务器php代码参考:
https://github.com/dcloudio/H5P.Server/tree/master/payment
0 赞 2015-06-19 15:30
Viccy

Viccy

请问微信支付的生成预支付订单后的,发起支付时sign数据是如何生成的?我用了很多方式都是支付失败 -1,可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
0 赞 2015-06-18 17:26
Javen

Javen

弱弱的问一句啊,为什么demo代码里,没有看到js调用呢?比如说 ` plus.payment.getChannels` 之类的。。。
0 赞 2015-06-05 18:39
linkerscott

linkerscott

请问payment现在是只支持支付宝和微信是吧?支持京东网银钱包吗?
0 赞 2015-06-05 12:15
DCloud_App_Array

DCloud_App_Array 回复 尸体

https://github.com/dcloudio/H5P.Server/tree/master/payment
0 赞 2015-05-07 12:14
尸体

尸体

php版本的微信支付功能示例代码里面的包含文件在哪里下载获得 ???请提供一下完整的PHP微信支付包
0 赞 2015-05-07 09:40
Alex123123

Alex123123

http://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_1
0 赞 2015-04-30 18:04
Alex123123

Alex123123

现在微信开放平台里提供的接口已经不是这个版本了, 没有package这个参数了。 这个怎么解决?
0 赞 2015-04-30 18:03
DCloud_App_Array

DCloud_App_Array 回复 好好学习

示例中使用的是开放平台注册的应用,正在确认公众号的支付,预计下一版本两种类型都兼容
0 赞 2015-04-08 20:01
好好学习

好好学习

我的微信支付 总是不成功 错误代码 -1
0 赞 2015-04-07 22:18
好好学习

好好学习

有微信支付的服务器完整例子么!? 到底是用开放平台还是公众号?
0 赞 2015-04-03 22:33
没事偷着乐

没事偷着乐 回复 yanxlg

java的也行啊
0 赞 2015-03-31 15:52
枫桥居APP

枫桥居APP

怎么调用测试网关呢
0 赞 2015-03-23 10:28
DCloud_App_Array

DCloud_App_Array 回复 麦生

示例代码只是简单的生成一个订单,应该根据实际项目需求来完善业务逻辑。
生成订单不需要使用到公钥,只需要私钥,公钥是用来校验订单是否合法的。
0 赞 2014-11-07 18:26
yanxlg

yanxlg

能不能呢个提供一个.Net版的服务端订单生成?
0 赞 2014-10-20 11:43

要回复文章请先登录注册