使用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 相关文章推荐
javascript 全等号运算符使用说明
May 31 Javascript
jQuery实现购物车计算价格功能的方法
Mar 25 Javascript
AngularJS实现按钮提示与点击变色效果
Sep 07 Javascript
jquery实现简单的瀑布流布局
Dec 11 Javascript
Node.js数据库操作之查询MySQL数据库(二)
Mar 04 Javascript
jQuery返回定位插件详解
May 15 jQuery
vue cli使用绝对路径引用图片问题的解决
Dec 06 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
Jan 04 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
Oct 29 Javascript
javascript执行上下文、变量对象实例分析
Apr 25 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
Nov 09 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
Nov 11 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
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
php长字符串定义方法
2012/07/12 PHP
php实现的验证码文件类实例
2015/06/18 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
最简单的tab切换实例代码
2016/05/13 Javascript
JavaScript基础——使用Canvas绘图
2016/11/02 Javascript
JS中cookie的使用及缺点讲解
2017/05/13 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
js实现打字小游戏
2019/12/17 Javascript
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
Python调用微信公众平台接口操作示例
2017/07/08 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
python实现车牌识别的示例代码
2019/08/05 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
Python设计密码强度校验程序
2020/07/30 Python
Python读写Excel表格的方法
2021/03/02 Python
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
Java里面有没有全局变量?为什么?
2015/02/06 面试题
个人委托书怎么写
2014/04/04 职场文书
经管应届生求职信范文
2014/05/18 职场文书
建设工程授权委托书
2014/09/22 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书