使用PBFunc在Powerbuilder中支付宝当面付款功能


Posted in Javascript onOctober 01, 2016

在PB实现支付宝当面付的功能,需要先在支付宝进行商户签约,并设置相关的公钥信息(具体参考支付宝文档)。

然后使用对应的私钥文件对参数进RSAWithSha1前面计算。具体代码如下:

string ls_pubFileName,ls_priFileName
n_pbfunc_cryp lnv_cryp
ls_priFileName ="D:\pbfunclib_pri.pem"//私钥文件
string ls_str
string ls_appId,ls_secret,ls_biz_content
ls_appId ="3434343"//改成你的appid
ls_biz_content='{"out_trade_no": "2015020011","scene": "bar_code","auth_code": "'+sle_1.Text+'","subject": "当面付条码支付","total_amount": "0.01"}'
ls_str ="app_id="+ls_appId
ls_str +='&biz_content='+ls_biz_content
ls_str +='&charset=utf-8'
ls_str +='&method=alipay.trade.pay'
ls_str +='&sign_type=RSA'
ls_str +='×tamp=2016-05-08 11:27:15'
ls_str +='&version=1.0'
string ls_sigStr
blob utf8R
utf8R =lnv_cryp.of_str2utf8(ls_str)
if lnv_cryp.of_sha1withRsa(ls_priFileName,utf8R,lnv_cryp.HASH_RESULT_DEFAULT,ls_sigStr) then
  MessageBox("提示","签名成功:"+ls_sigStr)
Else
  MessageBox("提示","签名失败")
end if
/*验证签名可以不需要调用*/
ls_pubFileName ="D:\pbfunclib_pub.pem"//在D盘生成公钥文件pbfunclib_pub.pem
IF Not lnv_cryp.of_RSAVerifyFileSHA1(ls_pubFileName,utf8R,ls_sigStr,lnv_cryp.HASH_RESULT_DEFAULT) Then
  MessageBox("提示","验证签名失败")
else
  messagebox("","验证签名成功")
End IF
//ls_str +=''
n_pbfunc_http lnv_http
lnv_http.of_clear()//清空参数
string ls_data
ls_data = "app_id="+wf_alipay_urlencode(ls_appId)
ls_data += "&biz_content="+wf_alipay_urlencode(ls_biz_content)
ls_data += "&charset="+wf_alipay_urlencode("utf-8")
ls_data += "&method="+wf_alipay_urlencode("alipay.trade.pay")
ls_data += "&sign_type="+wf_alipay_urlencode("RSA")
ls_data += "&sign="+wf_alipay_urlencode(ls_sigStr)
ls_data += "×tamp="+wf_alipay_urlencode("2016-05-08 11:27:15")
ls_data += "&version="+wf_alipay_urlencode("1.0")
lnv_http.of_set_URL("https://openapi.alipay.com/gateway.do?"+ls_data)
Blob lblb_data
string ls_error
IF lnv_http.of_post(lblb_data,ls_error) Then
  string gbkData
  gbkData = lnv_cryp.of_utf8ToGbk(lblb_data)//由于返回来的是utf-8编码,直接显示会乱码
  MessageBox("提示",gbkData+" "+string(lblb_data))
Else
  MessageBox("提示","执行失败")
End IF

其中wf_alipay_urlencode函数代码如下:

//ls_str为参数
n_pbfunc_encode lnv_encode
string ls_content,ls_reserved//指明不需要编码的字符
ls_reserved =""//都需要编码
string ls_sigStr
blob utf8R
utf8R =lnv_encode.of_str2utf8(ls_str)
lnv_encode.of_URIEncode2(utf8R,ls_content)
return ls_content

以上所述是小编给大家介绍的使用PBFunc在Powerbuilder中支付宝当面付款功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复的。

Javascript 相关文章推荐
JQuery 返回布尔值Is()条件判断方法代码
May 14 Javascript
JavaScript将页面表格导出为Excel的具体实现
Dec 27 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
Apr 02 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
May 16 Javascript
js全选按钮的实现方法
Nov 17 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
Jan 13 Javascript
JS常用倒计时代码实例总结
Feb 07 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
Oct 19 Javascript
vue与bootstrap实现简单用户信息添加删除功能
Feb 15 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
Feb 13 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
Oct 01 #Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 #Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 #Javascript
微信小程序 Audio API详解及实例代码
Sep 30 #Javascript
微信小程序 Record API详解及实例代码
Sep 30 #Javascript
微信小程序 Image API实例详解
Sep 30 #Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 #Javascript
You might like
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
php的计数器程序
2006/10/09 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
php封装的smarty类完整实例
2016/10/19 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
js 数组操作代码集锦
2009/04/28 Javascript
JavaScript 常用函数库详解
2009/10/21 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
python函数的5种参数详解
2017/02/24 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
Groupon法国官方网站:特卖和网上购物高达-70%
2019/09/02 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
几道PHP面试题
2013/04/14 面试题
档案管理员岗位职责
2013/12/01 职场文书
11月红领巾广播稿
2014/01/17 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
篮球赛新闻稿
2015/07/17 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
redis protocol通信协议及使用详解
2022/07/15 Redis